UPDATE: Enhance macOS build and proxy management functionality

This commit is contained in:
2026-05-16 09:23:36 +07:00
parent 24b28cdcca
commit 211912d44b
6 changed files with 315 additions and 58 deletions
+29 -5
View File
@@ -5,16 +5,40 @@ package main
import (
"fmt"
"os"
"os/exec"
"strings"
)
func runWithAdmin(exePath string, env []string) error {
escaped := strings.ReplaceAll(exePath, `"`, `\"`)
script := fmt.Sprintf(`do shell script "%s" with administrator privileges`, escaped)
command := shellQuote(exePath)
if len(env) > 0 {
command = strings.Join(shellEnvAssignments(env), " ") + " " + command
}
command += " >/dev/null 2>&1 &"
script := fmt.Sprintf("do shell script %s with administrator privileges", appleScriptString(command))
cmd := exec.Command("osascript", "-e", script)
cmd.Env = append(os.Environ(), env...)
return cmd.Start()
return cmd.Run()
}
func shellEnvAssignments(env []string) []string {
assignments := make([]string, 0, len(env))
for _, value := range env {
key, val, ok := strings.Cut(value, "=")
if !ok || key == "" {
continue
}
assignments = append(assignments, key+"="+shellQuote(val))
}
return assignments
}
func shellQuote(value string) string {
return "'" + strings.ReplaceAll(value, "'", "'\\''") + "'"
}
func appleScriptString(value string) string {
value = strings.ReplaceAll(value, `\`, `\\`)
value = strings.ReplaceAll(value, `"`, `\"`)
return `"` + value + `"`
}