diff --git a/cmd/root.go b/cmd/root.go index 24cf590e..4b3835db 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -133,12 +133,14 @@ func init() { pflags.BoolP("debug", "d", false, "verbose output") pflags.Bool("fatal", false, "Enables Warnings to exit") - u, err := user.Current() - if err != nil { - Fatal("failed to retrieve user identity:", err.Error()) - } sameOwner := false - if u.Uid == "0" { + u, err := user.Current() + // os/user doesn't work in from scratch environments + if err != nil { + Warning("failed to retrieve user identity:", err.Error()) + sameOwner = true + } + if u != nil && u.Uid == "0" { sameOwner = true } pflags.Bool("same-owner", sameOwner, "Maintain same owner on uncompress.") diff --git a/pkg/config/config.go b/pkg/config/config.go index e036bc0a..df8cac6b 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -212,8 +212,9 @@ func GenDefault(viper *v.Viper) { viper.SetDefault("general.spinner_charset", 22) viper.SetDefault("general.fatal_warnings", false) - u, _ := user.Current() - if u.Uid == "0" { + u, err := user.Current() + // os/user doesn't work in from scratch environments + if err != nil || u.Uid == "0" { viper.SetDefault("general.same_owner", true) } else { viper.SetDefault("general.same_owner", false)