diff --git a/pkg/pacman/sync/sync.go b/pkg/pacman/sync/sync.go index 3dc444f..45e8988 100644 --- a/pkg/pacman/sync/sync.go +++ b/pkg/pacman/sync/sync.go @@ -5,6 +5,7 @@ import ( "io" "os" "strings" + "sync" "time" "github.com/Riyyi/declpac/pkg/fetch" @@ -12,6 +13,9 @@ import ( "github.com/Riyyi/declpac/pkg/log" ) +var sudoUser string +var sudoUserOnce sync.Once + type Result struct { Installed int Removed int @@ -238,13 +242,15 @@ func resolveAndInstallDeps(f *fetch.Fetcher, aurInfo *aur.Package, logWriter io. } func getSudoUser() string { - sudoUser := os.Getenv("SUDO_USER") - if sudoUser == "" { - sudoUser = os.Getenv("USER") + sudoUserOnce.Do(func() { + sudoUser = os.Getenv("SUDO_USER") if sudoUser == "" { - sudoUser = "root" + sudoUser = os.Getenv("USER") + if sudoUser == "" { + sudoUser = "root" + } } - } + }) return sudoUser }