diff --git a/cmd/ocm-backplane/config/get.go b/cmd/ocm-backplane/config/get.go index 7aa94a42..8d996554 100644 --- a/cmd/ocm-backplane/config/get.go +++ b/cmd/ocm-backplane/config/get.go @@ -2,8 +2,11 @@ package config import ( "fmt" + "os" + "strings" "github.com/spf13/cobra" + "github.com/spf13/viper" "github.com/openshift/backplane-cli/pkg/cli/config" ) @@ -21,33 +24,40 @@ func newGetCmd() *cobra.Command { } func getConfig(cmd *cobra.Command, args []string) error { - config, err := config.GetBackplaneConfiguration() + configPath, err := config.GetConfigFilePath() if err != nil { return err } - proxyURL := "" - if config.ProxyURL != nil { - proxyURL = *config.ProxyURL + if _, err = os.Stat(configPath); err != nil { + if !os.IsNotExist(err) { + return fmt.Errorf("unable to access config file %s: %w", configPath, err) + } + } else { + viper.SetConfigFile(configPath) + viper.SetConfigType("json") + if err := viper.ReadInConfig(); err != nil { + return err + } } switch args[0] { case URLConfigVar: - fmt.Printf("%s: %s\n", URLConfigVar, config.URL) + fmt.Printf("%s: %s\n", URLConfigVar, viper.GetString(URLConfigVar)) case ProxyURLConfigVar: - fmt.Printf("%s: %s\n", ProxyURLConfigVar, proxyURL) + fmt.Printf("%s: %s\n", ProxyURLConfigVar, strings.Join(viper.GetStringSlice(ProxyURLConfigVar), ", ")) case SessionConfigVar: - fmt.Printf("%s: %s\n", SessionConfigVar, config.SessionDirectory) + fmt.Printf("%s: %s\n", SessionConfigVar, viper.GetString(SessionConfigVar)) case PagerDutyAPIConfigVar: - fmt.Printf("%s: %s\n", PagerDutyAPIConfigVar, config.PagerDutyAPIKey) + fmt.Printf("%s: %s\n", PagerDutyAPIConfigVar, viper.GetString(PagerDutyAPIConfigVar)) case GovcloudVar: - fmt.Printf("%s: %t\n", GovcloudVar, config.Govcloud) + fmt.Printf("%s: %t\n", GovcloudVar, viper.GetBool(GovcloudVar)) case "all": - fmt.Printf("%s: %s\n", URLConfigVar, config.URL) - fmt.Printf("%s: %s\n", ProxyURLConfigVar, proxyURL) - fmt.Printf("%s: %s\n", SessionConfigVar, config.SessionDirectory) - fmt.Printf("%s: %s\n", PagerDutyAPIConfigVar, config.PagerDutyAPIKey) - fmt.Printf("%s: %t\n", GovcloudVar, config.Govcloud) + fmt.Printf("%s: %s\n", URLConfigVar, viper.GetString(URLConfigVar)) + fmt.Printf("%s: %s\n", ProxyURLConfigVar, strings.Join(viper.GetStringSlice(ProxyURLConfigVar), ", ")) + fmt.Printf("%s: %s\n", SessionConfigVar, viper.GetString(SessionConfigVar)) + fmt.Printf("%s: %s\n", PagerDutyAPIConfigVar, viper.GetString(PagerDutyAPIConfigVar)) + fmt.Printf("%s: %t\n", GovcloudVar, viper.GetBool(GovcloudVar)) default: return fmt.Errorf("supported config variables are %s, %s, %s, %s, & %s", URLConfigVar, ProxyURLConfigVar, SessionConfigVar, PagerDutyAPIConfigVar, GovcloudVar) }