shithub: hugo

Download patch

ref: b581bbd8563a7c7ee95f9dcf76850370df4673d2
parent: 223073c6fdf1258de41782f96444ac81f32e9235
author: Bjørn Erik Pedersen <[email protected]>
date: Thu Jul 7 14:06:48 EDT 2016

Make config flag global

Fixes #2261

--- a/commands/hugo.go
+++ b/commands/hugo.go
@@ -198,17 +198,15 @@
 // 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 @@
 	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 @@
 }
 
 // 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")
--- a/commands/list_config.go
+++ b/commands/list_config.go
@@ -15,10 +15,11 @@
 
 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 @@
 }
 
 func init() {
-	initCoreCommonFlags(configCmd)
 	configCmd.RunE = config
 }