mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
7ef475fc16
This clarifies comments about static linking made in commit a8608b5b67
.
1. There are two ways to create a static binary, one is to disable
cgo, the other is to set linker flags. When cgo is disabled,
there is no need to use osusergo build tag.
2. osusergo only needs to be set when linking against glibc.
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
38 lines
962 B
Go
38 lines
962 B
Go
// +build !windows
|
|
|
|
package homedir // import "github.com/docker/docker/pkg/homedir"
|
|
|
|
import (
|
|
"os"
|
|
"os/user"
|
|
)
|
|
|
|
// Key returns the env var name for the user's home dir based on
|
|
// the platform being run on
|
|
func Key() string {
|
|
return "HOME"
|
|
}
|
|
|
|
// 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.
|
|
//
|
|
// 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.Getenv(Key())
|
|
if home == "" {
|
|
if u, err := user.Current(); err == nil {
|
|
return u.HomeDir
|
|
}
|
|
}
|
|
return home
|
|
}
|
|
|
|
// GetShortcutString returns the string that is shortcut to user's home directory
|
|
// in the native shell of the platform running on.
|
|
func GetShortcutString() string {
|
|
return "~"
|
|
}
|