mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Export $HOME lookup to pkg/homedir
Signed-off-by: Ahmet Alp Balkan <ahmetb@microsoft.com>
This commit is contained in:
parent
6ffb77afd4
commit
f9ae2d4fd4
8 changed files with 44 additions and 21 deletions
|
@ -14,10 +14,10 @@ import (
|
||||||
"text/template"
|
"text/template"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"github.com/docker/docker/pkg/homedir"
|
||||||
flag "github.com/docker/docker/pkg/mflag"
|
flag "github.com/docker/docker/pkg/mflag"
|
||||||
"github.com/docker/docker/pkg/term"
|
"github.com/docker/docker/pkg/term"
|
||||||
"github.com/docker/docker/registry"
|
"github.com/docker/docker/registry"
|
||||||
"github.com/docker/docker/utils"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type DockerCli struct {
|
type DockerCli struct {
|
||||||
|
@ -105,7 +105,7 @@ func (cli *DockerCli) Subcmd(name, signature, description string, exitOnError bo
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cli *DockerCli) LoadConfigFile() (err error) {
|
func (cli *DockerCli) LoadConfigFile() (err error) {
|
||||||
cli.configFile, err = registry.LoadConfig(utils.GetHomeDir())
|
cli.configFile, err = registry.LoadConfig(homedir.Get())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Fprintf(cli.err, "WARNING: %s\n", err)
|
fmt.Fprintf(cli.err, "WARNING: %s\n", err)
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,7 @@ import (
|
||||||
"github.com/docker/docker/opts"
|
"github.com/docker/docker/opts"
|
||||||
"github.com/docker/docker/pkg/archive"
|
"github.com/docker/docker/pkg/archive"
|
||||||
"github.com/docker/docker/pkg/fileutils"
|
"github.com/docker/docker/pkg/fileutils"
|
||||||
|
"github.com/docker/docker/pkg/homedir"
|
||||||
flag "github.com/docker/docker/pkg/mflag"
|
flag "github.com/docker/docker/pkg/mflag"
|
||||||
"github.com/docker/docker/pkg/parsers"
|
"github.com/docker/docker/pkg/parsers"
|
||||||
"github.com/docker/docker/pkg/parsers/filters"
|
"github.com/docker/docker/pkg/parsers/filters"
|
||||||
|
@ -388,7 +389,7 @@ func (cli *DockerCli) CmdLogin(args ...string) error {
|
||||||
var out2 engine.Env
|
var out2 engine.Env
|
||||||
err = out2.Decode(stream)
|
err = out2.Decode(stream)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
cli.configFile, _ = registry.LoadConfig(utils.GetHomeDir())
|
cli.configFile, _ = registry.LoadConfig(homedir.Get())
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
registry.SaveConfig(cli.configFile)
|
registry.SaveConfig(cli.configFile)
|
||||||
|
|
|
@ -16,6 +16,7 @@ import (
|
||||||
_ "github.com/docker/docker/daemon/execdriver/native"
|
_ "github.com/docker/docker/daemon/execdriver/native"
|
||||||
"github.com/docker/docker/dockerversion"
|
"github.com/docker/docker/dockerversion"
|
||||||
"github.com/docker/docker/engine"
|
"github.com/docker/docker/engine"
|
||||||
|
"github.com/docker/docker/pkg/homedir"
|
||||||
flag "github.com/docker/docker/pkg/mflag"
|
flag "github.com/docker/docker/pkg/mflag"
|
||||||
"github.com/docker/docker/pkg/signal"
|
"github.com/docker/docker/pkg/signal"
|
||||||
"github.com/docker/docker/registry"
|
"github.com/docker/docker/registry"
|
||||||
|
@ -36,7 +37,7 @@ func init() {
|
||||||
|
|
||||||
func migrateKey() (err error) {
|
func migrateKey() (err error) {
|
||||||
// Migrate trust key if exists at ~/.docker/key.json and owned by current user
|
// Migrate trust key if exists at ~/.docker/key.json and owned by current user
|
||||||
oldPath := filepath.Join(utils.GetHomeDir(), ".docker", defaultTrustKeyFile)
|
oldPath := filepath.Join(homedir.Get(), ".docker", defaultTrustKeyFile)
|
||||||
newPath := filepath.Join(getDaemonConfDir(), defaultTrustKeyFile)
|
newPath := filepath.Join(getDaemonConfDir(), defaultTrustKeyFile)
|
||||||
if _, statErr := os.Stat(newPath); os.IsNotExist(statErr) && utils.IsFileOwner(oldPath) {
|
if _, statErr := os.Stat(newPath); os.IsNotExist(statErr) && utils.IsFileOwner(oldPath) {
|
||||||
defer func() {
|
defer func() {
|
||||||
|
|
|
@ -7,8 +7,8 @@ import (
|
||||||
"runtime"
|
"runtime"
|
||||||
|
|
||||||
"github.com/docker/docker/opts"
|
"github.com/docker/docker/opts"
|
||||||
|
"github.com/docker/docker/pkg/homedir"
|
||||||
flag "github.com/docker/docker/pkg/mflag"
|
flag "github.com/docker/docker/pkg/mflag"
|
||||||
"github.com/docker/docker/utils"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -18,14 +18,14 @@ var (
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
if dockerCertPath == "" {
|
if dockerCertPath == "" {
|
||||||
dockerCertPath = filepath.Join(utils.GetHomeDir(), ".docker")
|
dockerCertPath = filepath.Join(homedir.Get(), ".docker")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getDaemonConfDir() string {
|
func getDaemonConfDir() string {
|
||||||
// TODO: update for Windows daemon
|
// TODO: update for Windows daemon
|
||||||
if runtime.GOOS == "windows" {
|
if runtime.GOOS == "windows" {
|
||||||
return filepath.Join(utils.GetHomeDir(), ".docker")
|
return filepath.Join(homedir.Get(), ".docker")
|
||||||
}
|
}
|
||||||
return "/etc/docker"
|
return "/etc/docker"
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,7 @@ func setDefaultConfFlag(flag *string, def string) {
|
||||||
if *flDaemon {
|
if *flDaemon {
|
||||||
*flag = filepath.Join(getDaemonConfDir(), def)
|
*flag = filepath.Join(getDaemonConfDir(), def)
|
||||||
} else {
|
} else {
|
||||||
*flag = filepath.Join(utils.GetHomeDir(), ".docker", def)
|
*flag = filepath.Join(homedir.Get(), ".docker", def)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
1
pkg/homedir/MAINTAINERS
Normal file
1
pkg/homedir/MAINTAINERS
Normal file
|
@ -0,0 +1 @@
|
||||||
|
Ahmet Alp Balkan <ahmetalpbalkan@gmail.com> (@ahmetalpbalkan)
|
16
pkg/homedir/homedir.go
Normal file
16
pkg/homedir/homedir.go
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
package homedir
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
"runtime"
|
||||||
|
)
|
||||||
|
|
||||||
|
// Get returns the home directory of the current user with the help of
|
||||||
|
// environment variables depending on the target operating system.
|
||||||
|
// Returned path should be used with "path/filepath" to form new paths.
|
||||||
|
func Get() string {
|
||||||
|
if runtime.GOOS == "windows" {
|
||||||
|
return os.Getenv("USERPROFILE")
|
||||||
|
}
|
||||||
|
return os.Getenv("HOME")
|
||||||
|
}
|
17
pkg/homedir/homedir_test.go
Normal file
17
pkg/homedir/homedir_test.go
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
package homedir
|
||||||
|
|
||||||
|
import (
|
||||||
|
"path/filepath"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestGet(t *testing.T) {
|
||||||
|
home := Get()
|
||||||
|
if home == "" {
|
||||||
|
t.Fatal("returned home directory is empty")
|
||||||
|
}
|
||||||
|
|
||||||
|
if !filepath.IsAbs(home) {
|
||||||
|
t.Fatalf("returned path is not absolute: %s", home)
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,13 +0,0 @@
|
||||||
package utils
|
|
||||||
|
|
||||||
import (
|
|
||||||
"os"
|
|
||||||
"runtime"
|
|
||||||
)
|
|
||||||
|
|
||||||
func GetHomeDir() string {
|
|
||||||
if runtime.GOOS == "windows" {
|
|
||||||
return os.Getenv("USERPROFILE")
|
|
||||||
}
|
|
||||||
return os.Getenv("HOME")
|
|
||||||
}
|
|
Loading…
Reference in a new issue