From 6ffb77afd4c3705322417f0673d254038f01a187 Mon Sep 17 00:00:00 2001 From: Ahmet Alp Balkan Date: Mon, 26 Jan 2015 11:04:16 -0800 Subject: [PATCH] Extract $HOME usages into utils.GetHomeDir() Refactored getHomeDir in docker/docker to GetHomeDir in utils pkg. Currently covers all use cases on the client-side. Signed-off-by: Ahmet Alp Balkan --- api/client/cli.go | 3 ++- api/client/commands.go | 2 +- docker/daemon.go | 2 +- docker/flags.go | 14 ++++---------- utils/homedir.go | 13 +++++++++++++ 5 files changed, 21 insertions(+), 13 deletions(-) create mode 100644 utils/homedir.go diff --git a/api/client/cli.go b/api/client/cli.go index 5e1ccb3291..34b4f99413 100644 --- a/api/client/cli.go +++ b/api/client/cli.go @@ -17,6 +17,7 @@ import ( flag "github.com/docker/docker/pkg/mflag" "github.com/docker/docker/pkg/term" "github.com/docker/docker/registry" + "github.com/docker/docker/utils" ) type DockerCli struct { @@ -104,7 +105,7 @@ func (cli *DockerCli) Subcmd(name, signature, description string, exitOnError bo } func (cli *DockerCli) LoadConfigFile() (err error) { - cli.configFile, err = registry.LoadConfig(os.Getenv("HOME")) + cli.configFile, err = registry.LoadConfig(utils.GetHomeDir()) if err != nil { fmt.Fprintf(cli.err, "WARNING: %s\n", err) } diff --git a/api/client/commands.go b/api/client/commands.go index daa13743eb..01db93391d 100644 --- a/api/client/commands.go +++ b/api/client/commands.go @@ -388,7 +388,7 @@ func (cli *DockerCli) CmdLogin(args ...string) error { var out2 engine.Env err = out2.Decode(stream) if err != nil { - cli.configFile, _ = registry.LoadConfig(os.Getenv("HOME")) + cli.configFile, _ = registry.LoadConfig(utils.GetHomeDir()) return err } registry.SaveConfig(cli.configFile) diff --git a/docker/daemon.go b/docker/daemon.go index 0923997375..5f29b7d463 100644 --- a/docker/daemon.go +++ b/docker/daemon.go @@ -36,7 +36,7 @@ func init() { func migrateKey() (err error) { // Migrate trust key if exists at ~/.docker/key.json and owned by current user - oldPath := filepath.Join(getHomeDir(), ".docker", defaultTrustKeyFile) + oldPath := filepath.Join(utils.GetHomeDir(), ".docker", defaultTrustKeyFile) newPath := filepath.Join(getDaemonConfDir(), defaultTrustKeyFile) if _, statErr := os.Stat(newPath); os.IsNotExist(statErr) && utils.IsFileOwner(oldPath) { defer func() { diff --git a/docker/flags.go b/docker/flags.go index 04830f4dd2..d8c9e8c153 100644 --- a/docker/flags.go +++ b/docker/flags.go @@ -8,6 +8,7 @@ import ( "github.com/docker/docker/opts" flag "github.com/docker/docker/pkg/mflag" + "github.com/docker/docker/utils" ) var ( @@ -17,21 +18,14 @@ var ( func init() { if dockerCertPath == "" { - dockerCertPath = filepath.Join(getHomeDir(), ".docker") + dockerCertPath = filepath.Join(utils.GetHomeDir(), ".docker") } } -func getHomeDir() string { - if runtime.GOOS == "windows" { - return os.Getenv("USERPROFILE") - } - return os.Getenv("HOME") -} - func getDaemonConfDir() string { // TODO: update for Windows daemon if runtime.GOOS == "windows" { - return filepath.Join(os.Getenv("USERPROFILE"), ".docker") + return filepath.Join(utils.GetHomeDir(), ".docker") } return "/etc/docker" } @@ -60,7 +54,7 @@ func setDefaultConfFlag(flag *string, def string) { if *flDaemon { *flag = filepath.Join(getDaemonConfDir(), def) } else { - *flag = filepath.Join(getHomeDir(), ".docker", def) + *flag = filepath.Join(utils.GetHomeDir(), ".docker", def) } } } diff --git a/utils/homedir.go b/utils/homedir.go new file mode 100644 index 0000000000..fa814a92b4 --- /dev/null +++ b/utils/homedir.go @@ -0,0 +1,13 @@ +package utils + +import ( + "os" + "runtime" +) + +func GetHomeDir() string { + if runtime.GOOS == "windows" { + return os.Getenv("USERPROFILE") + } + return os.Getenv("HOME") +}