diff --git a/build.go b/build.go index 3a8efb9..0b7f072 100644 --- a/build.go +++ b/build.go @@ -64,20 +64,25 @@ func BuildCmd() *cli.Command { }, }, Action: func(c *cli.Context) error { - if err := utils.EnuseIsPrivilegedGroupMember(); err != nil { - return err - } + var err error + var wd string + if utils.IsNotRoot() { + if err := utils.EnuseIsPrivilegedGroupMember(); err != nil { + return err + } - wd, err := os.Getwd() - if err != nil { - return cliutils.FormatCliExit(gotext.Get("Error getting working directory"), err) - } + wd, err = os.Getwd() + if err != nil { + return cliutils.FormatCliExit(gotext.Get("Error getting working directory"), err) + } - wd, wdCleanup, err := Mount(wd) - if err != nil { - return err + var wdCleanup func() + wd, wdCleanup, err = Mount(wd) + if err != nil { + return err + } + defer wdCleanup() } - defer wdCleanup() ctx := c.Context @@ -167,12 +172,16 @@ func BuildCmd() *cli.Command { if scriptArgs != nil { scriptFile := filepath.Base(scriptArgs.Script) - newScriptDir, scriptDirCleanup, err := Mount(filepath.Dir(scriptArgs.Script)) - if err != nil { - return err + scriptDir := filepath.Dir(scriptArgs.Script) + if utils.IsNotRoot() { + var scriptDirCleanup func() + scriptDir, scriptDirCleanup, err = Mount(scriptDir) + if err != nil { + return err + } + defer scriptDirCleanup() } - defer scriptDirCleanup() - scriptArgs.Script = filepath.Join(newScriptDir, scriptFile) + scriptArgs.Script = filepath.Join(scriptDir, scriptFile) } if err := utils.ExitIfCantDropCapsToAlrUser(); err != nil {