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

Docker-DCO-1.1-Signed-off-by: Dan Walsh <dwalsh@redhat.com> (github: rhatdan)
This commit is contained in:
Dan Walsh 2015-03-10 09:55:55 -04:00
parent 29e7195aaf
commit 0586d52a00

View file

@ -3,6 +3,8 @@ package homedir
import ( import (
"os" "os"
"runtime" "runtime"
"github.com/docker/libcontainer/user"
) )
// Key returns the env var name for the user's home dir based on // 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. // environment variables depending on the target operating system.
// Returned path should be used with "path/filepath" to form new paths. // Returned path should be used with "path/filepath" to form new paths.
func Get() string { 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 // GetShortcutString returns the string that is shortcut to user's home directory