This commit is contained in:
Hiddify
2024-02-09 23:36:44 +01:00
parent f85d98b572
commit b735756f62

View File

@@ -10,12 +10,12 @@ import (
) )
func ExecuteCmd(executablePath, args string) (string, error) { func ExecuteCmd(executablePath, args string) (string, error) {
cwd:=filepath.Dir(executablePath) cwd := filepath.Dir(executablePath)
background=false background := false
if appimage:=os.Getenv("APPIMAGE"); appimage!=""{ if appimage := os.Getenv("APPIMAGE"); appimage != "" {
executablePath= appimage+" HiddifyService" executablePath = appimage + " HiddifyService"
args="" args = ""
background=true background = true
} }
if err := execCmdImp([]string{"gksu", executablePath, args}, cwd, background); err == nil { if err := execCmdImp([]string{"gksu", executablePath, args}, cwd, background); err == nil {
return "Ok", nil return "Ok", nil
@@ -23,31 +23,30 @@ func ExecuteCmd(executablePath, args string) (string, error) {
if err := execCmdImp([]string{"pkexec", executablePath, args}, cwd, background); err == nil { if err := execCmdImp([]string{"pkexec", executablePath, args}, cwd, background); err == nil {
return "Ok", nil return "Ok", nil
} }
if err := execCmdImp([]string{"xterm", "-e", "sudo " + executablePath + " " + args }, cwd, background); err == nil { if err := execCmdImp([]string{"xterm", "-e", "sudo " + executablePath + " " + args}, cwd, background); err == nil {
return "Ok", nil return "Ok", nil
} }
if err := execCmdImp([]string{"sudo", executablePath, args }, cwd, background); err == nil { if err := execCmdImp([]string{"sudo", executablePath, args}, cwd, background); err == nil {
return "Ok", nil return "Ok", nil
} }
return "", fmt.Errorf("Error executing run as root shell command") return "", fmt.Errorf("Error executing run as root shell command")
} }
func execCmdImp(commands []string,cwd string, background bool) error { func execCmdImp(commands []string, cwd string, background bool) error {
cmd := exec.Command(commands[0], commands[1:]...) cmd := exec.Command(commands[0], commands[1:]...)
cmd.Dir = cwd cmd.Dir = cwd
cmd.Stdout = os.Stdout cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr cmd.Stderr = os.Stderr
fmt.Printf("Running command: %v", commands) fmt.Printf("Running command: %v", commands)
if background{ if background {
if err := cmd.Start(); err != nil { if err := cmd.Start(); err != nil {
fmt.Printf("Error: %v\n", err) fmt.Printf("Error: %v\n", err)
return err return err
} }
}else{ } else {
if err := cmd.Run(); err != nil { if err := cmd.Run(); err != nil {
fmt.Printf("Error: %v\n", err) fmt.Printf("Error: %v\n", err)
return err return err