aptgrade.go 842 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package main
  2. import (
  3. "fmt"
  4. "os"
  5. "os/exec"
  6. "strings"
  7. "syscall"
  8. )
  9. // Run the given command, showing output.
  10. func run_command(command []string) error {
  11. fmt.Println(strings.Repeat("=", 64))
  12. fmt.Println(command)
  13. cmd := exec.Command(command[0], command[1:]...)
  14. // Connections
  15. cmd.Stdout = os.Stdout
  16. cmd.Stderr = os.Stderr
  17. cmd.Stdin = os.Stdin
  18. cmd.SysProcAttr = &syscall.SysProcAttr{}
  19. cmd.SysProcAttr.Credential = &syscall.Credential{Uid: 0, Gid: 0}
  20. err := cmd.Run()
  21. fmt.Println(strings.Repeat("=", 50))
  22. if err != nil {
  23. fmt.Println("Did you forget to:")
  24. fmt.Println(" sudo chown root:root aptgrade")
  25. fmt.Println(" sudo chmod a+s aptgrade")
  26. fmt.Println("Command failed:", err)
  27. }
  28. return err
  29. }
  30. func main() {
  31. run_command([]string{"apt", "update"})
  32. run_command([]string{"apt", "upgrade", "-y"})
  33. fmt.Println("Done")
  34. }