3f20b04afdf674ad36d87ed73375211f8fd7282b
[apt-update.git] / debian / tmp / etc / cron.daily / apt-update
1 #!/bin/sh
2 #
3 # apt-update
4 #
5 # Simple wrapper script for cron to use - check for updated packages
6 # and mail admin with any recommended upgrades.
7
8 # Assumes that apt is configured correctly before we start...
9 #
10 # Steve McIntyre 26/09/2001
11
12 unset LANGUAGE
13 unset LANG
14 unset LC_ALL
15
16 . /etc/apt/update.conf
17
18 if [ "$MAILTO"x = ""x ] ; then
19     MAILTO=postmaster
20 fi
21
22 for CHROOT in $CHROOTS
23 do
24   if [ $CHROOT = / ] ; then
25       CHR=""
26   else
27       CHR="chroot $CHROOT"
28   fi
29   $CHR apt-get update >/dev/null
30   error=$?
31   if [ $error -ne 0 ] ; then
32       echo $CHR update failed with error $error
33       echo
34   fi
35
36   THIS_LIST=`$CHR apt-get -s -u upgrade | awk '/^Inst/ {print $2}'`
37   if [ "$THIS_LIST"x != ""x ] ; then
38       UPDATE_LIST="$UPDATE_LIST\n$CHROOT:\n"
39       for PKG in $THIS_LIST
40       do
41           UPDATE_LIST="$UPDATE_LIST $PKG\n"
42       done
43       CHROOT_UPDATED="$CHROOT_UPDATED $CHROOT"
44   fi
45 done
46
47 if [ "$UPDATE_LIST"x != ""x ] ; then
48     HOST=`uname -n`
49
50     # If we've been configured to download packages, grab them now
51     # before we send mail
52     if [ "$DOWNLOAD_DEBS"x = "yes"x ] ; then
53         for CHROOT in $CHROOT_UPDATED
54             do
55             if [ $CHROOT = / ] ; then
56                 CHR=""
57             else
58                 CHR="chroot $CHROOT"
59             fi
60             $CHR apt-get -d -y dist-upgrade > /dev/null
61             error=$?
62             if [ $error -ne 0 ] ; then
63                 echo $CHR package download failed with error $error
64             fi
65         done
66         UPDATE_LIST="$UPDATE_LIST\n\nPackage(s) downloaded and ready to install\n"
67     fi
68
69     # Now send mail to the local admin
70     UPDATE_LIST="On $HOST the following packages need upgrading:\n$UPDATE_LIST"
71     echo -e $UPDATE_LIST | mail -s "$HOST needs software updates" $MAILTO
72 fi
73