package main import ( "fmt" "os" "os/exec" "strings" "syscall" ) // Run the given command, showing output. func run_command(command []string) error { fmt.Println(strings.Repeat("=", 50)) fmt.Println(command) cmd := exec.Command(command[0], command[1:]...) // Connections cmd.Stdout = os.Stdout cmd.Stderr = os.Stderr cmd.Stdin = os.Stdin cmd.SysProcAttr = &syscall.SysProcAttr{} cmd.SysProcAttr.Credential = &syscall.Credential{Uid: 0, Gid: 0} err := cmd.Run() fmt.Println(strings.Repeat("=", 50)) if err != nil { fmt.Println("Command failed:", err) } return err } func main() { run_command([]string{"apt", "update"}) run_command([]string{"apt", "upgrade", "-y"}) fmt.Println("Done") }