aboutsummaryrefslogtreecommitdiffstats
path: root/up2date.sh
diff options
context:
space:
mode:
authorFilipp Lepalaan <filipp@mac.com>2010-11-29 18:05:28 +0200
committerFilipp Lepalaan <filipp@mac.com>2010-11-29 18:05:28 +0200
commite0bb9180af98961a43c15048e11475bfe8d96186 (patch)
tree9575a216f7222004a50798b891b12c775586b9d2 /up2date.sh
parent5d880fc1659d3ee1204641da68c7992385433614 (diff)
downloadmtk-e0bb9180af98961a43c15048e11475bfe8d96186.tar.gz
mtk-e0bb9180af98961a43c15048e11475bfe8d96186.tar.bz2
mtk-e0bb9180af98961a43c15048e11475bfe8d96186.zip
better netbless, updated readme
Diffstat (limited to 'up2date.sh')
-rwxr-xr-xup2date.sh47
1 files changed, 47 insertions, 0 deletions
diff --git a/up2date.sh b/up2date.sh
new file mode 100755
index 0000000..d64d7f6
--- /dev/null
+++ b/up2date.sh
@@ -0,0 +1,47 @@
+#!/usr/bin/env bash
+# up2date.sh
+# Run software update until there are no more
+# updates available.
+# @author Filipp Lepalaan
+# @package mtk
+
+if [[ $USER != "root" ]]; then
+ echo "$(basename $0) must be run as root" 2>&1
+ exit 1
+fi
+
+ME=$0
+PLIST=/Library/LaunchDaemons/com.unflyingobject.mtk.up2date.plist
+
+# updates available...
+if /usr/sbin/softwareupdate -l 2>&1 | grep -q 'found the following new'
+then
+ if [[ ! -e $PLIST ]]; then
+ cat > $PLIST <<EOT
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+ <dict>
+ <key>RunAtLoad</key>
+ <true/>
+ <key>Label</key>
+ <string>com.unflyingobject.mtk.up2date</string>
+ <key>ProgramArguments</key>
+ <array>
+ <string>${ME}</string>
+ </array>
+ </dict>
+</plist>
+EOT
+ /bin/launchctl load -w $PLIST
+ /usr/bin/logger "$(basename $0) loaded"
+ exit 0
+ fi
+ /usr/sbin/softwareupdate -ia && /sbin/reboot
+ exit 0
+fi
+
+# no more updates available
+/bin/launchctl unload -w "${PLIST}" && rm "${PLIST}"
+/usr/bin/logger "$(basename $0) unloaded"
+exit 0