Make config flag global
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 7 Jul 2016 16:06:48 +0000 (18:06 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Thu, 7 Jul 2016 16:06:48 +0000 (18:06 +0200)
Fixes #2261

commands/hugo.go
commands/list_config.go

index d979c3c629f38fd798454adcecf283ae926c1846..fa0467288fab92691b98700279ad670119b73be5 100644 (file)
@@ -198,17 +198,15 @@ func AddCommands() {
 // initHugoBuilderFlags initializes all common flags, typically used by the
 // core build commands, namely hugo itself, server, check and benchmark.
 func initHugoBuilderFlags(cmd *cobra.Command) {
-       initCoreCommonFlags(cmd)
        initHugoBuildCommonFlags(cmd)
 }
 
-// initCoreCommonFlags initializes common flags used by Hugo core commands.
-func initCoreCommonFlags(cmd *cobra.Command) {
-       cmd.Flags().StringVar(&cfgFile, "config", "", "config file (default is path/config.yaml|json|toml)")
+func initRootPersistentFlags() {
+       HugoCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is path/config.yaml|json|toml)")
 
        // Set bash-completion
        validConfigFilenames := []string{"json", "js", "yaml", "yml", "toml", "tml"}
-       cmd.Flags().SetAnnotation("config", cobra.BashCompFilenameExt, validConfigFilenames)
+       HugoCmd.PersistentFlags().SetAnnotation("config", cobra.BashCompFilenameExt, validConfigFilenames)
 }
 
 // initHugoBuildCommonFlags initialize common flags related to the Hugo build.
@@ -257,6 +255,7 @@ func init() {
        HugoCmd.PersistentFlags().StringVar(&logFile, "logFile", "", "Log File path (if set, logging enabled automatically)")
        HugoCmd.PersistentFlags().BoolVar(&verboseLog, "verboseLog", false, "verbose logging")
 
+       initRootPersistentFlags()
        initHugoBuilderFlags(HugoCmd)
        initBenchmarkBuildingFlags(HugoCmd)
 
@@ -319,8 +318,6 @@ func loadDefaultSettings() {
 }
 
 // InitializeConfig initializes a config file with sensible default configuration flags.
-// A Hugo command that calls initCoreCommonFlags() can pass itself
-// as an argument to have its command-line flags processed here.
 func InitializeConfig(subCmdVs ...*cobra.Command) error {
        viper.AutomaticEnv()
        viper.SetEnvPrefix("hugo")
index 1b90f11cee0333eeaf64c026ed22a5845e36396b..d53cc5884d39c42704174ec5ac572fea3e4ea24e 100644 (file)
@@ -15,10 +15,11 @@ package commands
 
 import (
        "fmt"
-       "github.com/spf13/cobra"
-       "github.com/spf13/viper"
        "reflect"
        "sort"
+
+       "github.com/spf13/cobra"
+       "github.com/spf13/viper"
 )
 
 var configCmd = &cobra.Command{
@@ -28,7 +29,6 @@ var configCmd = &cobra.Command{
 }
 
 func init() {
-       initCoreCommonFlags(configCmd)
        configCmd.RunE = config
 }