From 51359df9fbf71be56d0bd626de8c59296ecdecac Mon Sep 17 00:00:00 2001 From: Antonio Murdaca Date: Mon, 22 Feb 2016 14:48:25 +0100 Subject: [PATCH] resolve the config file from the sudo user Signed-off-by: Antonio Murdaca --- homedir/homedir.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/homedir/homedir.go b/homedir/homedir.go index 8154e83..b8d9a93 100644 --- a/homedir/homedir.go +++ b/homedir/homedir.go @@ -29,6 +29,19 @@ func Get() string { return home } +// GetWithSudoUser returns the home directory of the user who called sudo (if +// available, retrieved from $SUDO_USER). It fallbacks to Get if any error occurs. +// Returned path should be used with "path/filepath" to form new paths. +func GetWithSudoUser() string { + sudoUser := os.Getenv("SUDO_USER") + if sudoUser != "" { + if user, err := user.LookupUser(sudoUser); err == nil { + return user.Home + } + } + return Get() +} + // GetShortcutString returns the string that is shortcut to user's home directory // in the native shell of the platform running on. func GetShortcutString() string {