commit b063503
chld
·
2026-02-07 03:50:03 +0000 UTC
parent 2007bfb
auto elevation?
2 files changed,
+20,
-1
+16,
-0
1@@ -0,0 +1,16 @@
2+package dgre
3+
4+import (
5+ "os/exec"
6+)
7+
8+func GetSu() string {
9+ if _, err := exec.LookPath("sudo"); err == nil {
10+ return "sudo"
11+ } else if _, err := exec.LookPath("doas"); err == nil {
12+ return "doas"
13+ } else if _, err := exec.LookPath("ssu"); err == nil {
14+ return "ssu"
15+ }
16+ return "" // couldnt find a good elevation command
17+}
+4,
-1
1@@ -3,6 +3,7 @@ package dgrb
2 import (
3 "fmt"
4 "git.sr.ht/~chld/dgr/cmd"
5+ "git.sr.ht/~chld/dgr/extra"
6 "io/fs"
7 "os"
8 "path/filepath"
9@@ -20,7 +21,9 @@ func Inst(pkg string) {
10 args := append([]string{"-r"}, pk...)
11 args = append(args, os.Getenv("DTR_ROOT"))
12
13- err = dgr.Run("cp", args...)
14+ cmd := dgre.GetSu() + " cmd"
15+
16+ err = dgr.Run(cmd, args...)
17 if err != nil {
18 dgr.Die("failed to copy package files to root", os.Getenv("DTR_ROOT"), 1)
19 } else {