Mainly add external monitoring of mail server
[distro-setup] / filesystem / usr / local / bin / myupgrade
index e762246d09756f9c12c9d3042e0d433c7a69c304..eedc62d1e8bb63e2316cdc0d2a8b1ca86425df55 100755 (executable)
@@ -17,17 +17,31 @@ fi
 
 hn=$(hostname -f)
 source /a/bin/bash_unpublished/source-state
-if [[ $HOSTNAME == "$MAIL_HOST" || $hn == li.b8.nz ]]; then
-  exit 0
-fi
 
 l() {
   "$@" |& systemd-cat -t myupgrade
 }
-l /a/bin/buildscripts/tor-browser
-l /a/bin/buildscripts/go
 l /a/bin/buildscripts/rust
-l /a/bin/buildscripts/misc
+
+has_x=false
+for pkg in xorg wayland; do
+  if dpkg -s -- $x |& grep -Fx "Status: install ok installed" &> /dev/null; then
+    has_x=true
+    break
+  fi
+done
+
+if $has_x; then
+  l /a/bin/buildscripts/tor-browser
+  l /a/bin/buildscripts/misc
+fi
+
+
+source /a/bin/distro-setup/path-add-function
+export GOPATH=$HOME/go
+path-add $GOPATH/bin
+path-add /usr/local/go/bin
+l /a/bin/buildscripts/go
 l go get -u mvdan.cc/fdroidcl
 
 cmd="sudo /usr/sbin/checkrestart -p"
@@ -35,19 +49,24 @@ if [[ $($cmd | sed '/^Found 0 processes using old versions of upgraded files$/d'
   $cmd -v | pee cat "wall -n"
 fi
 
+# no automatic reboot for these hosts
+if [[ $HOSTNAME == "$MAIL_HOST" || $hn == li.b8.nz ]]; then
+  exit 0
+fi
+
 if [[ -s /var/log/checkrestart.log ]]; then
   for x in {30..1}; do
-    echo "pid $PID. unattended upgrade, rebooting in $((x*10)) seconds" | wall -n
+    echo "pid $PID. unattended upgrade, rebooting in $((x*10)) seconds" | sudo wall -n
     sleep 10
   done
   for x in {30..1}; do
     if ! fuser /var/lib/dpkg/lock &> /dev/null; then
-      echo "pid $PID. unattended upgrade, rebooting now" | pee cat "wall -n"
+      echo "pid $PID. unattended upgrade, rebooting now" | pee cat "sudo wall -n"
       sudo /sbin/reboot
       exit 0
     fi
-    echo "pid $PID. unattended upgrade reboot waiting 10 seconds for dpkg lock" | wall -n
+    echo "pid $PID. unattended upgrade reboot waiting 10 seconds for dpkg lock" | sudo wall -n
     sleep 10
   done
-  echo "pid $PID. dpkg locked for 5 minutes, automatic reboot failed" | pee cat "wall -n"
+  echo "pid $PID. dpkg locked for 5 minutes, automatic reboot failed" | pee cat "sudo wall -n"
 fi