diff options
Diffstat (limited to 'debian/apt.cron.daily')
-rw-r--r-- | debian/apt.cron.daily | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/debian/apt.cron.daily b/debian/apt.cron.daily new file mode 100644 index 000000000..67b58747e --- /dev/null +++ b/debian/apt.cron.daily @@ -0,0 +1,54 @@ +#!/bin/sh +# +# cron job for apt-get update +# +# Update-Package-Intervall is in days +# +STAMP=/var/lib/apt/update-stamp + +#set -e + +do_update() +{ + touch $STAMP.new + if apt-get update -qq; then + if [ -x /usr/bin/dbus-send ]; then + dbus-send --system / app.apt.dbus.updated boolean:true + fi + mv $STAMP.new $STAMP + fi + rm -f $STAMP.new +} + +UpdateInterval=0 +RES=`apt-config shell UpdateInterval APT::Periodic::Update-Package-Lists` +eval $RES + +if [ $UpdateInterval -eq 0 ]; then + exit 0 +fi + +# laptop check, on_ac_power returns: +# 0 (true) System is on mains power +# 1 (false) System is not on mains power +# 255 (false) Power status could not be determined +# Desktop systems always return 255 it seems +if [ -x /usr/bin/on_ac_power ]; then + /usr/bin/on_ac_power + if [ $? -eq 1 ]; then + exit 0 + fi +fi + +if [ ! -f $STAMP ]; then + do_update + exit 0 +fi + +LastUpdate=`stat -c "%Y" $STAMP 2>/dev/null` +Now=`date +%s` + +NeedUpdate=$(($LastUpdate+$UpdateInterval*3600*24)) +if [ $NeedUpdate -le $Now ]; then + do_update +fi |