Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/rpms/dextrose-updater/sbin/dextrose-update
diff options
context:
space:
mode:
authorAleksey Lim <alsroot@member.fsf.org>2011-01-25 14:14:36 (GMT)
committer Anish Mangal <anish@sugarlabs.org>2011-01-25 14:21:49 (GMT)
commit5aa23aafeae101f5e47a40cc17d97a943c71161b (patch)
tree083ab70752bcfb47f3099b8633f7c956fc75d8e0 /rpms/dextrose-updater/sbin/dextrose-update
parent6a2c7c34f62712fcbdc26ce47ce3c64c9b78888e (diff)
Add dextrose-updater
Diffstat (limited to 'rpms/dextrose-updater/sbin/dextrose-update')
-rwxr-xr-xrpms/dextrose-updater/sbin/dextrose-update51
1 files changed, 51 insertions, 0 deletions
diff --git a/rpms/dextrose-updater/sbin/dextrose-update b/rpms/dextrose-updater/sbin/dextrose-update
new file mode 100755
index 0000000..f6db502
--- /dev/null
+++ b/rpms/dextrose-updater/sbin/dextrose-update
@@ -0,0 +1,51 @@
+#!/bin/sh
+
+name="dextrose-update"
+. /etc/sysconfig/${name}
+
+logfile="/var/log/${name}"
+
+echo "$(date)" >> $logfile
+echo -e "\tRepositories:" ${DEXTROSE_YUM_REPO} >> $logfile
+
+reboot_pkgs="kernel kernel-firmware"
+relogin_pkgs="sugar sugar-artwork sugar-base sugar-datastore sugar-presence-service sugar-toolkit"
+
+yum="/usr/bin/yum --disablerepo=* --skip-broken --quiet"
+for i in $DEXTROSE_YUM_REPO; do
+ yum="$yum --enablerepo=$i"
+done
+
+updates() {
+ ${yum} -e0 check-update | awk '/./{print $1 "-" $2}'
+}
+
+to_update=$(updates)
+[ "${to_update}" ] || exit 0
+
+parse() {
+ for i in $@; do
+ echo ${to_update} | grep "\(^\| \)$i\." >/dev/null && echo $i
+ done
+}
+
+need_reboot=$(parse ${reboot_pkgs})
+need_relogin=$(parse ${relogin_pkgs})
+
+echo -e "\tPackages to update:" ${to_update} >> $logfile
+${yum} -y update >> $logfile 2>&1
+to_update=$(updates)
+
+if [ "${need_reboot}" ]; then
+ if [ "${need_reboot}" != "$(parse ${reboot_pkgs})" ]; then
+ echo -e "\tNeed to reboot..." >> $logfile
+ dbus-send --system /org/sugarlabs/system org.sugarlabs.system.Reboot
+ fi
+fi
+
+if [ "${need_relogin}" ]; then
+ if [ "${need_relogin}" != "$(parse ${relogin_pkgs})" ]; then
+ echo -e "\tNeed to relogin..." >> $logfile
+ dbus-send --system /org/sugarlabs/system org.sugarlabs.system.Relogin
+ fi
+fi