diff options
author | Anish Mangal <anish@sugarlabs.org> | 2010-12-20 19:05:13 (GMT) |
---|---|---|
committer | Bernie Innocenti <bernie@codewiz.org> | 2011-01-08 21:41:55 (GMT) |
commit | 28244016560b53dd8d7227867415f09484c673cc (patch) | |
tree | 4ab05b79019f26a493dc5f623fa9965d35f1703c | |
parent | c30c61cdf8ade45e927d108e8b7a460f376e63ec (diff) |
Add yum-updater setup scripts to dx xo-1 builds
Signed-off-by: Anish Mangal <anish@sugarlabs.org>
-rw-r--r-- | examples/dextrose2-xo1-nognome.ini | 1 | ||||
-rwxr-xr-x | modules/custom_scripts/yum_updater_setup.sh | 55 |
2 files changed, 56 insertions, 0 deletions
diff --git a/examples/dextrose2-xo1-nognome.ini b/examples/dextrose2-xo1-nognome.ini index 190e8ab..a595344 100644 --- a/examples/dextrose2-xo1-nognome.ini +++ b/examples/dextrose2-xo1-nognome.ini @@ -217,6 +217,7 @@ path=buildnr-dx custom_script_1=modules/custom_scripts/set_protected_list.sh custom_script_2=modules/custom_scripts/sugar_coredump.sh custom_script_3=modules/custom_scripts/libertas_debug.sh +custom_script_4=modules/custom_scripts/yum_updater_setup.sh [base] versioned_fs=0 diff --git a/modules/custom_scripts/yum_updater_setup.sh b/modules/custom_scripts/yum_updater_setup.sh new file mode 100755 index 0000000..8538b6b --- /dev/null +++ b/modules/custom_scripts/yum_updater_setup.sh @@ -0,0 +1,55 @@ +cat >>"$INSTALL_ROOT/etc/default/dextrose-update" <<__EOF__ +DEXTROSE_YUM_REPO=dextrose +__EOF__ + +cat >>"$INSTALL_ROOT/usr/sbin/dextrose-update" <<__EOF__ +#!/bin/sh + +name="dextrose-update" +. /etc/default/\${name} + +logfile="/var/log/\${name}" + +reboot_pkgs="kernel kernel-firmware" +relogin_pkgs="sugar sugar-artwork sugar-base sugar-datastore sugar-presence-service sugar-toolkit" + +yum="/usr/bin/yum --disablerepo=* --enablerepo=\${DEXTROSE_YUM_REPO} --skip-broken --quiet" + +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 "\$(date)" >> \$logfile +echo -e "\tRepository:" \${DEXTROSE_YUM_REPO} >> \$logfile +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 +__EOF__ + +ln -s $INSTALL_ROOT/usr/sbin/dextrose-update $INSTALL_ROOT/etc/cron.daily |