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"
)
var (
_ cmder = (*genChromaStyles)(nil)
)
type genChromaStyles struct {
style string
highlightStyle string
@ -29,6 +33,10 @@ type genChromaStyles struct {
cmd *cobra.Command
}
func (c *genChromaStyles) getCommand() *cobra.Command {
return c.cmd
}
// TODO(bep) highlight
func createGenChromaStyles() *genChromaStyles {
g := &genChromaStyles{

View file

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

View file

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

View file

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