diff options
author | Aleksey 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) |
commit | 5aa23aafeae101f5e47a40cc17d97a943c71161b (patch) | |
tree | 083ab70752bcfb47f3099b8633f7c956fc75d8e0 /rpms/dextrose-updater/sbin/dextrose-update | |
parent | 6a2c7c34f62712fcbdc26ce47ce3c64c9b78888e (diff) |
Add dextrose-updater
Diffstat (limited to 'rpms/dextrose-updater/sbin/dextrose-update')
-rwxr-xr-x | rpms/dextrose-updater/sbin/dextrose-update | 51 |
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 |