diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-04-09 18:49:13 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-04-11 09:48:56 +0200 |
commit | 4b780ca778ee7f25af808da38ede964a01698c70 (patch) | |
tree | e243fba63e913f8000dec2891081c1987fe25c8b /commands/convert.go | |
parent | 7bc5e89fbaa5c613b8853ff7b69fae570bd0b56d (diff) |
commands: Make convert command non-global
See #4598
Diffstat (limited to 'commands/convert.go')
-rw-r--r-- | commands/convert.go | 89 |
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 { |