Browse Source

If $HOME is not set, return homedir from /etc/passwd

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
Dan Walsh 10 years ago
parent
commit
42aec0c771
1 changed files with 9 additions and 1 deletions
  1. 9 1
      pkg/homedir/homedir.go

+ 9 - 1
pkg/homedir/homedir.go

@@ -3,6 +3,8 @@ package homedir
 import (
 	"os"
 	"runtime"
+
+	"github.com/docker/libcontainer/user"
 )
 
 // Key returns the env var name for the user's home dir based on
@@ -18,7 +20,13 @@ func Key() string {
 // environment variables depending on the target operating system.
 // Returned path should be used with "path/filepath" to form new paths.
 func Get() string {
-	return os.Getenv(Key())
+	home := os.Getenv(Key())
+	if home == "" && runtime.GOOS != "windows" {
+		if u, err := user.CurrentUser(); err == nil {
+			return u.Home
+		}
+	}
+	return home
 }
 
 // GetShortcutString returns the string that is shortcut to user's home directory