Skip to content

Commit

Permalink
commands: Move the --format flag to only the commands that support it
Browse files Browse the repository at this point in the history
Fixes #11022
  • Loading branch information
bep committed May 27, 2023
1 parent 3297b39 commit f86b5f7
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 13 deletions.
10 changes: 0 additions & 10 deletions commands/commandeer.go
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,6 @@ type rootCommand struct {
buildWatch bool
environment string

// File format to read or write (TOML, YAML, JSON).
format string

// Common build flags.
baseURL string
gc bool
Expand Down Expand Up @@ -408,12 +405,6 @@ func (r *rootCommand) PreRun(cd, runner *simplecobra.Commandeer) error {
if err != nil {
return err
}
switch r.format {
case "json", "toml", "yaml":
// OK
default:
return fmt.Errorf("unsupported format %q; must be one of json, toml or yaml", r.format)
}

loggers.PanicOnWarning.Store(r.panicOnWarning)
r.commonConfigs = lazycache.New[int32, *commonConfig](lazycache.Options{MaxEntries: 5})
Expand Down Expand Up @@ -485,7 +476,6 @@ Complete documentation is available at https://gohugo.io/.`

// Configure persistent flags
cmd.PersistentFlags().StringVarP(&r.source, "source", "s", "", "filesystem path to read files relative from")
cmd.PersistentFlags().StringVar(&r.format, "format", "toml", "preferred file format (toml, yaml or json)")
cmd.PersistentFlags().SetAnnotation("source", cobra.BashCompSubdirsInDir, []string{})
cmd.PersistentFlags().StringP("destination", "d", "", "filesystem path to write files to")
cmd.PersistentFlags().SetAnnotation("destination", cobra.BashCompSubdirsInDir, []string{})
Expand Down
9 changes: 8 additions & 1 deletion commands/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import (
"bytes"
"context"
"encoding/json"
"fmt"
"os"
"strings"
"time"
Expand All @@ -40,6 +41,8 @@ func newConfigCommand() *configCommand {
type configCommand struct {
r *rootCommand

format string

commands []simplecobra.Commander
}

Expand Down Expand Up @@ -67,7 +70,7 @@ func (c *configCommand) Run(ctx context.Context, cd *simplecobra.Commandeer, arg
return err
}

format := strings.ToLower(c.r.format)
format := strings.ToLower(c.format)

switch format {
case "json":
Expand All @@ -83,6 +86,8 @@ func (c *configCommand) Run(ctx context.Context, cd *simplecobra.Commandeer, arg
return parser.InterfaceToConfig(m, metadecoders.YAML, os.Stdout)
case "toml":
return parser.InterfaceToConfig(m, metadecoders.TOML, os.Stdout)
default:
return fmt.Errorf("unsupported format: %q", format)
}
}

Expand All @@ -93,6 +98,8 @@ func (c *configCommand) Init(cd *simplecobra.Commandeer) error {
cmd := cd.CobraCommand
cmd.Short = "Print the site configuration"
cmd.Long = `Print the site configuration, both default and custom settings.`
cmd.Flags().StringVar(&c.format, "format", "toml", "preferred file format (toml, yaml or json)")

return nil
}

Expand Down
7 changes: 5 additions & 2 deletions commands/new.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ func newNewCommand() *newCommand {
var (
force bool
contentType string
format string
)

var c *newCommand
Expand Down Expand Up @@ -67,6 +68,8 @@ func newNewCommand() *newCommand {
cmd.Flags().StringVarP(&contentType, "kind", "k", "", "content type to create")
cmd.Flags().String("editor", "", "edit new content with this editor, if provided")
cmd.Flags().BoolVarP(&force, "force", "f", false, "overwrite file if it already exists")
cmd.Flags().StringVar(&format, "format", "toml", "preferred file format (toml, yaml or json)")

},
},
&simpleCommand{
Expand Down Expand Up @@ -118,7 +121,7 @@ Use ` + "`hugo new [contentPath]`" + ` to create new content.`,
return errors.New(createpath + " already exists and is not empty. See --force.")

case !isEmpty && force:
all := append(dirs, filepath.Join(createpath, "hugo."+r.format))
all := append(dirs, filepath.Join(createpath, "hugo."+format))
for _, path := range all {
if exists, _ := helpers.Exists(path, sourceFs); exists {
return errors.New(path + " already exists")
Expand All @@ -133,7 +136,7 @@ Use ` + "`hugo new [contentPath]`" + ` to create new content.`,
}
}

c.newSiteCreateConfig(sourceFs, createpath, r.format)
c.newSiteCreateConfig(sourceFs, createpath, format)

// Create a default archetype file.
helpers.SafeWriteToDisk(filepath.Join(archeTypePath, "default.md"),
Expand Down

0 comments on commit f86b5f7

Please sign in to comment.