summaryrefslogtreecommitdiffstats
path: root/commands/convert.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-04-09 18:49:13 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2018-04-11 09:48:56 +0200
commit4b780ca778ee7f25af808da38ede964a01698c70 (patch)
treee243fba63e913f8000dec2891081c1987fe25c8b /commands/convert.go
parent7bc5e89fbaa5c613b8853ff7b69fae570bd0b56d (diff)
commands: Make convert command non-global
See #4598
Diffstat (limited to 'commands/convert.go')
-rw-r--r--commands/convert.go89
1 files changed, 50 insertions, 39 deletions
diff --git a/commands/convert.go b/commands/convert.go
index f63f8522f..cc07fe087 100644
--- a/commands/convert.go
+++ b/commands/convert.go
@@ -28,56 +28,67 @@ import (
"github.com/spf13/cobra"
)
+var (
+ _ cmder = (*convertCmd)(nil)
+)
+
var outputDir string
var unsafe bool
-var convertCmd = &cobra.Command{
- Use: "convert",
- Short: "Convert your content to different formats",
- Long: `Convert your content (e.g. front matter) to different formats.
+type convertCmd struct {
+ cmd *cobra.Command
+}
+
+func newConvertCmd() *convertCmd {
+ cmd := &cobra.Command{
+ Use: "convert",
+ Short: "Convert your content to different formats",
+ Long: `Convert your content (e.g. front matter) to different formats.
See convert's subcommands toJSON, toTOML and toYAML for more information.`,
- RunE: nil,
-}
+ RunE: nil,
+ }
-var toJSONCmd = &cobra.Command{
- Use: "toJSON",
- Short: "Convert front matter to JSON",
- Long: `toJSON converts all front matter in the content directory
+ cmd.AddCommand(
+ &cobra.Command{
+ Use: "toJSON",
+ Short: "Convert front matter to JSON",
+ Long: `toJSON converts all front matter in the content directory
to use JSON for the front matter.`,
- RunE: func(cmd *cobra.Command, args []string) error {
- return convertContents(rune([]byte(parser.JSONLead)[0]))
- },
-}
-
-var toTOMLCmd = &cobra.Command{
- Use: "toTOML",
- Short: "Convert front matter to TOML",
- Long: `toTOML converts all front matter in the content directory
+ RunE: func(cmd *cobra.Command, args []string) error {
+ return convertContents(rune([]byte(parser.JSONLead)[0]))
+ },
+ },
+ &cobra.Command{
+ Use: "toTOML",
+ Short: "Convert front matter to TOML",
+ Long: `toTOML converts all front matter in the content directory
to use TOML for the front matter.`,
- RunE: func(cmd *cobra.Command, args []string) error {
- return convertContents(rune([]byte(parser.TOMLLead)[0]))
- },
-}
-
-var toYAMLCmd = &cobra.Command{
- Use: "toYAML",
- Short: "Convert front matter to YAML",
- Long: `toYAML converts all front matter in the content directory
+ RunE: func(cmd *cobra.Command, args []string) error {
+ return convertContents(rune([]byte(parser.TOMLLead)[0]))
+ },
+ },
+ &cobra.Command{
+ Use: "toYAML",
+ Short: "Convert front matter to YAML",
+ Long: `toYAML converts all front matter in the content directory
to use YAML for the front matter.`,
- RunE: func(cmd *cobra.Command, args []string) error {
- return convertContents(rune([]byte(parser.YAMLLead)[0]))
- },
+ RunE: func(cmd *cobra.Command, args []string) error {
+ return convertContents(rune([]byte(parser.YAMLLead)[0]))
+ },
+ },
+ )
+
+ cmd.PersistentFlags().StringVarP(&outputDir, "output", "o", "", "filesystem path to write files to")
+ cmd.PersistentFlags().StringVarP(&source, "source", "s", "", "filesystem path to read files relative from")
+ cmd.PersistentFlags().BoolVar(&unsafe, "unsafe", false, "enable less safe operations, please backup first")
+ cmd.PersistentFlags().SetAnnotation("source", cobra.BashCompSubdirsInDir, []string{})
+
+ return &convertCmd{cmd: cmd}
}
-func init() {
- convertCmd.AddCommand(toJSONCmd)
- convertCmd.AddCommand(toTOMLCmd)
- convertCmd.AddCommand(toYAMLCmd)
- convertCmd.PersistentFlags().StringVarP(&outputDir, "output", "o", "", "filesystem path to write files to")
- convertCmd.PersistentFlags().StringVarP(&source, "source", "s", "", "filesystem path to read files relative from")
- convertCmd.PersistentFlags().BoolVar(&unsafe, "unsafe", false, "enable less safe operations, please backup first")
- convertCmd.PersistentFlags().SetAnnotation("source", cobra.BashCompSubdirsInDir, []string{})
+func (c *convertCmd) getCommand() *cobra.Command {
+ return c.cmd
}
func convertContents(mark rune) error {