#!/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 which on_ac_power >/dev/null; then 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