summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doUpgrade.go35
-rw-r--r--main.go3
2 files changed, 36 insertions, 2 deletions
diff --git a/doUpgrade.go b/doUpgrade.go
new file mode 100644
index 0000000..8c271b2
--- /dev/null
+++ b/doUpgrade.go
@@ -0,0 +1,35 @@
+// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
+// Use of this source code is governed by the GPL 3.0
+
+package main
+
+import (
+ "fmt"
+ "os"
+
+ "go.wit.com/lib/gui/shell"
+ "go.wit.com/lib/protobuf/zoopb"
+)
+
+// exits if not root
+func checkSuperuser() {
+ if os.Getuid() != 0 {
+ badExit(fmt.Errorf("you must be root"))
+ }
+}
+
+func doUpgrade() error {
+ var cmd []string
+
+ checkSuperuser()
+
+ cmd = []string{"apt", "update"}
+ shell.RunVerbose(cmd)
+
+ cmd = []string{"apt", "install", "wit-tools"}
+ shell.RunVerbose(cmd)
+
+ me.machine, _ = zoopb.InitMachine()
+ doAptUpgrade()
+ return nil
+}
diff --git a/main.go b/main.go
index 0f53c6c..217d7dc 100644
--- a/main.go
+++ b/main.go
@@ -35,8 +35,7 @@ func main() {
dumpDebug()
if argv.Upgrade != nil {
- me.machine, _ = zoopb.InitMachine()
- doAptUpgrade()
+ doUpgrade()
okExit("")
}