From b1f355e9360958445002eabba4a3ad12e7f6c689 Mon Sep 17 00:00:00 2001 From: Raphael Tiersch Date: Mon, 25 Dec 2017 14:24:22 +0100 Subject: [PATCH] Added/Corrected golden file test for creating a project named testproject with viper active --- cobra/cmd/testdata/root.go.golden | 35 ++++++++++++++++++------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/cobra/cmd/testdata/root.go.golden b/cobra/cmd/testdata/root.go.golden index a76a7672..7bcfd676 100644 --- a/cobra/cmd/testdata/root.go.golden +++ b/cobra/cmd/testdata/root.go.golden @@ -18,16 +18,25 @@ import ( "fmt" "os" - homedir "github.com/mitchellh/go-homedir" + "github.com/Fjolnir-Dvorak/environ" "github.com/spf13/cobra" "github.com/spf13/viper" + "path/filepath" ) -var cfgFile string +const ( + VendorName = "" + ApplicationName = "testproject" + DefaultConfType = "yaml" +) +var ( + cfgFile string + Environ environ.Environ +) // rootCmd represents the base command when called without any subcommands var rootCmd = &cobra.Command{ - Use: "testproject", + Use: ApplicationName, Short: "A brief description of your application", Long: `A longer description that spans multiple lines and likely contains examples and usage of using your application. For example: @@ -49,13 +58,17 @@ func Execute() { } } -func init() { +func init() { + Environ = environ.New(VendorName, ApplicationName) + cobra.OnInitialize(initConfig) // Here you will define your flags and configuration settings. // Cobra supports persistent flags, which, if defined here, // will be global for your application. - rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.testproject.yaml)") + configFile := filepath.Join(Environ.VarConfigLocal(), ApplicationName + "." + DefaultConfType) + RootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", + "config file (default is " + configFile + ")") // Cobra also supports local flags, which will only run // when this action is called directly. @@ -68,16 +81,10 @@ func initConfig() { // Use config file from the flag. viper.SetConfigFile(cfgFile) } else { - // Find home directory. - home, err := homedir.Dir() - if err != nil { - fmt.Println(err) - os.Exit(1) - } - // Search config in home directory with name ".testproject" (without extension). - viper.AddConfigPath(home) - viper.SetConfigName(".testproject") + // Search config in Environ.ConfigLocal() directory with name "ApplicationName" (without extension). + viper.AddConfigPath(Environ.ConfigLocal()) + viper.SetConfigName(ApplicationName) } viper.AutomaticEnv() // read in environment variables that match