+# Set VERBOSE mode from apt-config (or inherit from environment)
+eval $(apt-config shell VERBOSE APT::Periodic::Verbose)
+if [ -z "$VERBOSE" ]; then
+ VERBOSE="0"
+fi
+if [ "$VERBOSE" -le 2 ]; then
+ # quiet for 0,1,2
+ XSTDOUT=">/dev/null"
+ XSTDERR="2>/dev/null"
+ XAPTOPT="-qq"
+ XUUPOPT=""
+else
+ XSTDOUT=""
+ XSTDERR=""
+ XAPTOPT=""
+ XUUPOPT="-d"
+fi
+if [ "$VERBOSE" -ge 3 ]; then
+ # trace output
+ set -x
+fi
+
+# laptop check, on_ac_power returns:
+# 0 (true) System is on main power
+# 1 (false) System is not on main 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
+ POWER=$?
+ if [ $POWER -eq 1 ]; then
+ debug_echo "exit: system NOT on main power."
+ exit 0
+ elif [ $POWER -ne 0 ]; then
+ debug_echo "power status ($POWER) undetermined."
+ fi
+ debug_echo "system is on main power."
+fi
+
+# check if we can lock the cache and if the cache is clean
+if which apt-get >/dev/null && ! apt-get check $XAPTOPT $XSTDERR ; then
+ debug_echo "error encountered in cron job with \"apt-get check\"."
+ exit 0
+fi
+# No need to check for apt-get below
+
+# Global current time in seconds since 1970-01-01 00:00:00 UTC
+now=$(date +%s)
+
+# Set default values and normalize
+Dir="/"
+eval $(apt-config shell Dir Dir)
+Dir=${Dir%/}
+
+CacheDir="var/cache/apt/"
+eval $(apt-config shell CacheDir Dir::Cache)
+CacheDir=${CacheDir%/}
+if [ -z "$CacheDir" ]; then
+ debug_echo "practically empty Dir::Cache, exiting"
+ exit 0
+fi
+
+CacheArchive="archives/"
+eval $(apt-config shell CacheArchive Dir::Cache::Archives)
+CacheArchive=${CacheArchive%/}
+if [ -z "$CacheArchive" ]; then
+ debug_echo "practically empty Dir::Cache::archives, exiting"
+ exit 0
+fi
+
+BackupArchiveInterval=0
+eval $(apt-config shell BackupArchiveInterval APT::Periodic::BackupArchiveInterval)
+
+BackupLevel=3
+eval $(apt-config shell BackupLevel APT::Periodic::BackupLevel)
+if [ $BackupLevel -le 1 ]; then
+ BackupLevel=2 ;
+fi
+
+CacheBackup="backup/"
+eval $(apt-config shell CacheBackup Dir::Cache::Backup)
+CacheBackup=${CacheBackup%/}
+if [ -z "$CacheBackup" ]; then
+ echo "empty Dir::Cache::Backup, using default" 1>&2
+ CacheBackup="backup/"
+fi
+
+# Support old Archive for compatibility.
+# Document only Periodic for all controling parameters of this script.
+MaxAge=0
+eval $(apt-config shell MaxAge APT::Archives::MaxAge)
+eval $(apt-config shell MaxAge APT::Periodic::MaxAge)
+
+MinAge=2
+eval $(apt-config shell MinAge APT::Archives::MinAge)
+eval $(apt-config shell MinAge APT::Periodic::MinAge)
+
+MaxSize=0
+eval $(apt-config shell MaxSize APT::Archives::MaxSize)
+eval $(apt-config shell MaxSize APT::Periodic::MaxSize)
+