Rsync Mikey & Kent
[clearscm.git] / bin / update-system
index 7f385e7..79d3d1c 100755 (executable)
@@ -2,20 +2,32 @@
 export PATH=$PATH:/sbin:/usr/sbin
 
 logfile=/var/local/log/update-system.log
+tmpfile=/tmp/update-system.list
 
-echo "$(date): $HOSTNAME: update-system: Start" > $logfile
+apt-get update -y > /dev/null 2>&1
 
-apt-get update -y >> $logfile 2>&1
-
-uptodate=$(apt list --upgradeable 2> /dev/null | grep -v "^Listing" | wc -l)
+apt list --upgradeable > $tmpfile 2> /dev/null
+uptodate=$(grep -v "^Listing" $tmpfile | wc -l)
 
 if [ $uptodate -ne 0 ]; then
-  apt-get upgrade    -y >> $logfile 2>&1
-  apt-get autoremove -y >> $logfile 2>&1
+  cat $tmpfile >> $logfile && rm $tmpfile
+
+  apt-get upgrade -y >> $tmpfile
+
+  held_back=$(grep "kept back" $tmpfile | wc -l)
+
+  if [ $held_back -ne 0 ]; then
+    echo "$(date): $HOSTNAME not updated - packages held back" >> $logfile
 
-  echo "Updated $HOSTNAME" >> $logfile
+    cat $tmpfile >> $logfile && rm $tmpfile
+  else
+    rm $tmpfile
+    echo "$(date): Updated $HOSTNAME" >> $logfile
+  fi
+
+  apt-get autoremove -y >> /dev/null 2>&1
 else
-  echo "No updates for $HOSTNAME" >> $logfile
-fi
+  rm $tmpfile
 
-echo "$(date): $HOSTNAME: update-system: End" >> $logfile
+  echo "$(date): No updates for $HOSTNAME" >> $logfile
+fi