dotcloud/docker

View on GitHub
pkg/homedir/homedir.go

Summary

Maintainability
A
0 mins
Test Coverage
package homedir

import (
    "os"
    "os/user"
    "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.
//
// On non-Windows platforms, it falls back to nss lookups, if the home
// directory cannot be obtained from environment-variables.
//
// If linking statically with cgo enabled against glibc, ensure the
// osusergo build tag is used.
//
// If needing to do nss lookups, do not disable cgo or set osusergo.
func Get() string {
    home, _ := os.UserHomeDir()
    if home == "" && runtime.GOOS != "windows" {
        if u, err := user.Current(); err == nil {
            return u.HomeDir
        }
    }
    return home
}