diff options
author | Alex Goodman <wagoodman@users.noreply.github.com> | 2020-03-08 08:23:11 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-08 08:23:11 -0400 |
commit | f9e29dce4da42d1d8c360b2b8850802bd3fc404d (patch) | |
tree | 095c8043abb935f60d9d9df203b73f7db03e164b | |
parent | fa9c4867f32b1bb0865fff8621d335f664a07a62 (diff) | |
parent | e15a2aa0d53a632c54329f1817d91871ec90d573 (diff) |
Merge pull request #283 from abitrolly/sourceconfig
Allow setting `source` in config file (fixes #267)
-rw-r--r-- | cmd/analyze.go | 9 | ||||
-rw-r--r-- | cmd/root.go | 10 |
2 files changed, 14 insertions, 5 deletions
diff --git a/cmd/analyze.go b/cmd/analyze.go index 0a59442..e6d7e8c 100644 --- a/cmd/analyze.go +++ b/cmd/analyze.go @@ -6,6 +6,7 @@ import ( "os" "github.com/spf13/cobra" + "github.com/spf13/viper" "github.com/wagoodman/dive/runtime" ) @@ -45,13 +46,13 @@ func doAnalyzeCmd(cmd *cobra.Command, args []string) { sourceType, imageStr = dive.DeriveImageSource(userImage) if sourceType == dive.SourceUnknown { - sourceStr, err := cmd.PersistentFlags().GetString("source") - if err != nil { - fmt.Printf("unable to determine image source: %v\n", err) + sourceStr := viper.GetString("source") + sourceType = dive.ParseImageSource(sourceStr) + if sourceType == dive.SourceUnknown { + fmt.Printf("unable to determine image source: %v\n", sourceStr) os.Exit(1) } - sourceType = dive.ParseImageSource(sourceStr) imageStr = userImage } diff --git a/cmd/root.go b/cmd/root.go index cdbc60f..707c556 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -66,6 +66,8 @@ func initCli() { // initConfig reads in config file and ENV variables if set. func initConfig() { + var err error + viper.SetDefault("log.level", log.InfoLevel.String()) viper.SetDefault("log.path", "./dive.log") viper.SetDefault("log.enabled", false) @@ -97,6 +99,12 @@ func initConfig() { viper.SetDefault("container-engine", "docker") + err = viper.BindPFlag("source", rootCmd.PersistentFlags().Lookup("source")) + if err != nil { + fmt.Println(err) + os.Exit(1) + } + viper.SetEnvPrefix("DIVE") // replace all - with _ when looking for matching environment variables viper.SetEnvKeyReplacer(strings.NewReplacer("-", "_")) @@ -110,7 +118,7 @@ func initConfig() { } else { viper.SetConfigFile(cfgFile) } - err := viper.ReadInConfig() + err = viper.ReadInConfig() if err == nil { fmt.Println("Using config file:", viper.ConfigFileUsed()) } else if cfgFile != "" { |