summaryrefslogtreecommitdiff
path: root/exec.go
diff options
context:
space:
mode:
Diffstat (limited to 'exec.go')
-rw-r--r--exec.go56
1 files changed, 0 insertions, 56 deletions
diff --git a/exec.go b/exec.go
index 16f4967..3d9a195 100644
--- a/exec.go
+++ b/exec.go
@@ -2,10 +2,8 @@ package shell
import (
"errors"
- "fmt"
"os"
"os/exec"
- "syscall"
"go.wit.com/log"
)
@@ -71,57 +69,3 @@ func PathExecVerbose(path string, args []string) error {
// log.Info("ExecCheck() nil")
return nil
}
-
-func SudoRaw(c []string) {
- args := []string{"-S"}
- args = append(args, c...)
- cmd := exec.Command("sudo", args...)
-
- // Assign the current process's standard input, output, and error
- cmd.Stderr = os.Stderr
- cmd.Stdout = os.Stdout
- cmd.Stdin = os.Stdin
-
- // Ensure the process has a terminal session
- cmd.SysProcAttr = &syscall.SysProcAttr{
- Setsid: true, // Start a new session
- }
-
- err := cmd.Run()
- if err != nil {
- fmt.Println("Command execution failed:", err)
- }
-}
-
-func Sudo(c []string) error {
- args := []string{"-S"}
- // args := []string{}
- args = append(args, c...)
- cmd := exec.Command("sudo", args...)
-
- // Open the terminal device directly to preserve input/output control
- tty, err := os.OpenFile("/dev/tty", os.O_RDWR, 0)
- if err != nil {
- fmt.Println("Failed to open /dev/tty:", err)
- return err
- }
- defer tty.Close()
-
- // Assign the TTY explicitly
- cmd.Stdin = tty
- cmd.Stdout = tty
- cmd.Stderr = tty
-
- // Ensure the new process gets its own session
- cmd.SysProcAttr = &syscall.SysProcAttr{
- Setsid: true, // Start a new session
- }
-
- // Run the command
- if err := cmd.Run(); err != nil {
- fmt.Println("Command execution failed:", err)
- }
-
- fmt.Println("\nProcess finished. TTY restored.")
- return nil
-}