From e42049919e88b61c8d27e87227a2c3596746a1bb Mon Sep 17 00:00:00 2001 From: Ian Howell Date: Mon, 10 Feb 2020 16:25:43 -0600 Subject: [PATCH] [#28] Fix bad defaults for config file paths. This moves the management of default file paths away from pflag and into airshipctl. Change-Id: Ib2f701d727fdd28794980cf44722d3147d4e6f07 --- cmd/root_test.go | 2 +- pkg/environment/constants.go | 2 +- pkg/environment/settings.go | 26 +++++++++++++++++++------- 3 files changed, 21 insertions(+), 9 deletions(-) diff --git a/cmd/root_test.go b/cmd/root_test.go index dc48945d7..6d2edf871 100644 --- a/cmd/root_test.go +++ b/cmd/root_test.go @@ -47,7 +47,7 @@ func TestFlagLoading(t *testing.T) { { name: "default, no flags", args: []string{}, - expected: "$HOME/.airship/config", + expected: "", }, { name: "alternate airshipconfig", diff --git a/pkg/environment/constants.go b/pkg/environment/constants.go index ffbfba5db..9b48cea41 100644 --- a/pkg/environment/constants.go +++ b/pkg/environment/constants.go @@ -12,4 +12,4 @@ const ( Wide = "wide" ) -const HomePlaceholder = "$HOME" +const HomeEnvVar = "$HOME" diff --git a/pkg/environment/settings.go b/pkg/environment/settings.go index 8d1f14fba..a2a6bffe3 100644 --- a/pkg/environment/settings.go +++ b/pkg/environment/settings.go @@ -24,15 +24,27 @@ type AirshipCTLSettings struct { // InitFlags adds the default settings flags to cmd func (a *AirshipCTLSettings) InitFlags(cmd *cobra.Command) { flags := cmd.PersistentFlags() - flags.BoolVar(&a.Debug, "debug", false, "enable verbose output") + flags.BoolVar( + &a.Debug, + "debug", + false, + "enable verbose output") - flags.StringVar(&a.airshipConfigPath, config.FlagConfigFilePath, - filepath.Join(HomePlaceholder, config.AirshipConfigDir, config.AirshipConfig), - "Path to file for airshipctl configuration.") + defaultAirshipConfigDir := filepath.Join(HomeEnvVar, config.AirshipConfigDir) - flags.StringVar(&a.kubeConfigPath, clientcmd.RecommendedConfigPathFlag, - filepath.Join(HomePlaceholder, config.AirshipConfigDir, config.AirshipKubeConfig), - "Path to kubeconfig associated with airshipctl configuration.") + defaultAirshipConfigPath := filepath.Join(defaultAirshipConfigDir, config.AirshipConfig) + flags.StringVar( + &a.airshipConfigPath, + config.FlagConfigFilePath, + "", + `Path to file for airshipctl configuration. (default "`+defaultAirshipConfigPath+`")`) + + defaultKubeConfigPath := filepath.Join(defaultAirshipConfigDir, config.AirshipKubeConfig) + flags.StringVar( + &a.kubeConfigPath, + clientcmd.RecommendedConfigPathFlag, + "", + `Path to kubeconfig associated with airshipctl configuration. (default "`+defaultKubeConfigPath+`")`) } func (a *AirshipCTLSettings) Config() *config.Config {