diff options
Diffstat (limited to 'internal/app/launch.sudo.go')
| -rw-r--r-- | internal/app/launch.sudo.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/internal/app/launch.sudo.go b/internal/app/launch.sudo.go new file mode 100644 index 00000000..666d0b3a --- /dev/null +++ b/internal/app/launch.sudo.go @@ -0,0 +1,33 @@ +package app + +import ( + "os" + + "git.ophivana.moe/cat/fortify/internal/verbose" +) + +const ( + sudoAskPass = "SUDO_ASKPASS" +) + +func (a *app) commandBuilderSudo() (args []string) { + args = make([]string, 0, 4+len(a.seal.env)+len(a.seal.command)) + + // -Hiu $USER + args = append(args, "-Hiu", a.seal.sys.Username) + + // -A? + if _, ok := os.LookupEnv(sudoAskPass); ok { + verbose.Printf("%s set, adding askpass flag\n", sudoAskPass) + args = append(args, "-A") + } + + // environ + args = append(args, a.seal.env...) + + // -- $@ + args = append(args, "--") + args = append(args, a.seal.command...) + + return +} |
