Skip to content

Commit

Permalink
Merge pull request #2934 from thaJeztah/fix_homedir_warning
Browse files Browse the repository at this point in the history
cli/config: prevent warning if HOME is not set
  • Loading branch information
silvin-lubecki authored Jan 19, 2021
2 parents a49d70c + c85a37d commit 1e54c5d
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 6 deletions.
22 changes: 16 additions & 6 deletions cli/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,29 @@ const (
var (
initConfigDir sync.Once
configDir string
homeDir string
)

// resetHomeDir is used in testing to resets the "homeDir" package variable to
// force re-lookup of the home directory between tests.
func resetHomeDir() {
homeDir = ""
}

func getHomeDir() string {
if homeDir == "" {
homeDir = homedir.Get()
}
return homeDir
}

func setConfigDir() {
if configDir != "" {
return
}
configDir = os.Getenv("DOCKER_CONFIG")
if configDir == "" {
configDir = filepath.Join(homedir.Get(), configFileDir)
configDir = filepath.Join(getHomeDir(), configFileDir)
}
}

Expand Down Expand Up @@ -109,11 +123,7 @@ func Load(configDir string) (*configfile.ConfigFile, error) {
}

// Can't find latest config file so check for the old one
home, err := os.UserHomeDir()
if err != nil {
return configFile, errors.Wrap(err, oldConfigfile)
}
filename = filepath.Join(home, oldConfigfile)
filename = filepath.Join(getHomeDir(), oldConfigfile)
if file, err := os.Open(filename); err == nil {
defer file.Close()
if err := configFile.LegacyLoadFromReader(file); err != nil {
Expand Down
4 changes: 4 additions & 0 deletions cli/config/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ password`: "Invalid Auth config file",
email`: "Invalid auth configuration file",
}

resetHomeDir()
tmpHome, err := ioutil.TempDir("", "config-test")
assert.NilError(t, err)
defer os.RemoveAll(tmpHome)
Expand All @@ -131,6 +132,7 @@ email`: "Invalid auth configuration file",
}

func TestOldValidAuth(t *testing.T) {
resetHomeDir()
tmpHome, err := ioutil.TempDir("", "config-test")
assert.NilError(t, err)
defer os.RemoveAll(tmpHome)
Expand Down Expand Up @@ -165,6 +167,7 @@ func TestOldValidAuth(t *testing.T) {
}

func TestOldJSONInvalid(t *testing.T) {
resetHomeDir()
tmpHome, err := ioutil.TempDir("", "config-test")
assert.NilError(t, err)
defer os.RemoveAll(tmpHome)
Expand All @@ -184,6 +187,7 @@ func TestOldJSONInvalid(t *testing.T) {
}

func TestOldJSON(t *testing.T) {
resetHomeDir()
tmpHome, err := ioutil.TempDir("", "config-test")
assert.NilError(t, err)
defer os.RemoveAll(tmpHome)
Expand Down

0 comments on commit 1e54c5d

Please sign in to comment.