commands: Make the list commands non-global

See #4598
This commit is contained in:
Bjørn Erik Pedersen 2018-04-09 20:42:08 +02:00
parent 2a2c983867
commit e26a8b242a
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F
4 changed files with 127 additions and 100 deletions

View file

@ -22,6 +22,10 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
) )
var (
_ cmder = (*genChromaStyles)(nil)
)
type genChromaStyles struct { type genChromaStyles struct {
style string style string
highlightStyle string highlightStyle string
@ -29,6 +33,10 @@ type genChromaStyles struct {
cmd *cobra.Command cmd *cobra.Command
} }
func (c *genChromaStyles) getCommand() *cobra.Command {
return c.cmd
}
// TODO(bep) highlight // TODO(bep) highlight
func createGenChromaStyles() *genChromaStyles { func createGenChromaStyles() *genChromaStyles {
g := &genChromaStyles{ g := &genChromaStyles{

View file

@ -23,11 +23,19 @@ import (
"github.com/spf13/cobra" "github.com/spf13/cobra"
) )
var (
_ cmder = (*genDocsHelper)(nil)
)
type genDocsHelper struct { type genDocsHelper struct {
target string target string
cmd *cobra.Command cmd *cobra.Command
} }
func (c *genDocsHelper) getCommand() *cobra.Command {
return c.cmd
}
func createGenDocsHelper() *genDocsHelper { func createGenDocsHelper() *genDocsHelper {
g := &genDocsHelper{ g := &genDocsHelper{
cmd: &cobra.Command{ cmd: &cobra.Command{

View file

@ -201,15 +201,15 @@ func AddCommands() {
HugoCmd.AddCommand(newBenchmarkCmd().getCommand()) HugoCmd.AddCommand(newBenchmarkCmd().getCommand())
HugoCmd.AddCommand(newConvertCmd().getCommand()) HugoCmd.AddCommand(newConvertCmd().getCommand())
HugoCmd.AddCommand(newNewCmd().getCommand()) HugoCmd.AddCommand(newNewCmd().getCommand())
HugoCmd.AddCommand(listCmd) HugoCmd.AddCommand(newListCmd().getCommand())
HugoCmd.AddCommand(newImportCmd().getCommand()) HugoCmd.AddCommand(newImportCmd().getCommand())
HugoCmd.AddCommand(genCmd) HugoCmd.AddCommand(genCmd)
genCmd.AddCommand(genautocompleteCmd) genCmd.AddCommand(genautocompleteCmd)
genCmd.AddCommand(gendocCmd) genCmd.AddCommand(gendocCmd)
genCmd.AddCommand(genmanCmd) genCmd.AddCommand(genmanCmd)
genCmd.AddCommand(createGenDocsHelper().cmd) genCmd.AddCommand(createGenDocsHelper().getCommand())
genCmd.AddCommand(createGenChromaStyles().cmd) genCmd.AddCommand(createGenChromaStyles().getCommand())
} }

View file

@ -21,24 +21,30 @@ import (
jww "github.com/spf13/jwalterweatherman" jww "github.com/spf13/jwalterweatherman"
) )
func init() { var _ cmder = (*listCmd)(nil)
listCmd.AddCommand(listDraftsCmd)
listCmd.AddCommand(listFutureCmd) type listCmd struct {
listCmd.AddCommand(listExpiredCmd) cmd *cobra.Command
listCmd.PersistentFlags().StringVarP(&source, "source", "s", "", "filesystem path to read files relative from")
listCmd.PersistentFlags().SetAnnotation("source", cobra.BashCompSubdirsInDir, []string{})
} }
var listCmd = &cobra.Command{ func (c *listCmd) getCommand() *cobra.Command {
return c.cmd
}
func newListCmd() *listCmd {
cc := &listCmd{}
cc.cmd = &cobra.Command{
Use: "list", Use: "list",
Short: "Listing out various types of content", Short: "Listing out various types of content",
Long: `Listing out various types of content. Long: `Listing out various types of content.
List requires a subcommand, e.g. ` + "`hugo list drafts`.", List requires a subcommand, e.g. ` + "`hugo list drafts`.",
RunE: nil, RunE: nil,
} }
var listDraftsCmd = &cobra.Command{ cc.cmd.AddCommand(
&cobra.Command{
Use: "drafts", Use: "drafts",
Short: "List all drafts", Short: "List all drafts",
Long: `List all of the drafts in your content directory.`, Long: `List all of the drafts in your content directory.`,
@ -72,9 +78,8 @@ var listDraftsCmd = &cobra.Command{
return nil return nil
}, },
} },
&cobra.Command{
var listFutureCmd = &cobra.Command{
Use: "future", Use: "future",
Short: "List all posts dated in the future", Short: "List all posts dated in the future",
Long: `List all of the posts in your content directory which will be Long: `List all of the posts in your content directory which will be
@ -109,9 +114,8 @@ posted in the future.`,
return nil return nil
}, },
} },
&cobra.Command{
var listExpiredCmd = &cobra.Command{
Use: "expired", Use: "expired",
Short: "List all posts already expired", Short: "List all posts already expired",
Long: `List all of the posts in your content directory which has already Long: `List all of the posts in your content directory which has already
@ -146,4 +150,11 @@ expired.`,
return nil return nil
}, },
},
)
cc.cmd.PersistentFlags().StringVarP(&source, "source", "s", "", "filesystem path to read files relative from")
cc.cmd.PersistentFlags().SetAnnotation("source", cobra.BashCompSubdirsInDir, []string{})
return cc
} }