for CHROOT in $CHROOTS
do
- if [ $CHROOT = / ] ; then
- CHR=""
- else
- CHR="chroot $CHROOT"
- fi
- echo "Running apt-get dist-upgrade in $CHROOT"
- $CHR apt-get $@ dist-upgrade
- $CHR apt-get clean
+ case $CHROOT in
+ /)
+ CHR="";;
+ /*)
+ CHR="chroot $CHROOT";;
+ *)
+ CHR="schroot -c $CHROOT --";;
+ esac
+ echo "Running apt-get dist-upgrade in $CHROOT"
+ $CHR apt-get $@ dist-upgrade
+ $CHR apt-get clean
+ echo "Finished dist-upgrade in $CHROOT"
+ echo "======================================"
done
for CHROOT in $CHROOTS
do
- if [ $CHROOT = / ] ; then
- CHR=""
- else
- CHR="chroot $CHROOT"
- fi
- $CHR apt-get update > $TMPFILE 2>&1
- error=$?
- if [ $error -ne 0 ] ; then
- echo $CHR update failed with error $error
- echo
- fi
- # And also check for warnings:
- grep -q ^W $TMPFILE
- if [ $? -eq 0 ] ; then
- echo "$CHR update gave the following warnings:"
- grep ^W $TMPFILE
- fi
- rm -f $TMPFILE
+ case $CHROOT in
+ /)
+ CHR="";;
+ /*)
+ CHR="chroot $CHROOT";;
+ *)
+ CHR="schroot -c $CHROOT --";;
+ esac
+ $CHR apt-get update > $TMPFILE 2>&1
+ error=$?
+ if [ $error -ne 0 ] ; then
+ echo $CHR update failed with error $error
+ echo
+ fi
+ # And also check for warnings:
+ grep -q ^W $TMPFILE
+ if [ $? -eq 0 ] ; then
+ echo "$CHR update gave the following warnings:"
+ grep ^W $TMPFILE
+ fi
+ rm -f $TMPFILE
- THIS_LIST=`$CHR apt-get -s -u dist-upgrade | awk '/^Inst/ {print $2}'`
- if [ "$THIS_LIST"x != ""x ] ; then
- UPDATE_LIST="$UPDATE_LIST\n$CHROOT:\n"
- for PKG in $THIS_LIST
- do
- UPDATE_LIST="$UPDATE_LIST $PKG\n"
- done
- CHROOT_UPDATED="$CHROOT_UPDATED $CHROOT"
- fi
+ THIS_LIST=`$CHR apt-get -s -u dist-upgrade | awk '/^Inst/ {print $2}'`
+ if [ "$THIS_LIST"x != ""x ] ; then
+ UPDATE_LIST="$UPDATE_LIST\n$CHROOT:\n"
+ for PKG in $THIS_LIST
+ do
+ UPDATE_LIST="$UPDATE_LIST $PKG\n"
+ done
+ CHROOT_UPDATED="$CHROOT_UPDATED $CHROOT"
+ fi
done
if [ "$UPDATE_LIST"x != ""x ] ; then
# before we finish
if [ "$DOWNLOAD_DEBS"x = "yes"x ] ; then
for CHROOT in $CHROOT_UPDATED
- do
- if [ $CHROOT = / ] ; then
- CHR=""
- else
- CHR="chroot $CHROOT"
- fi
+ do
+ case $CHROOT in
+ /)
+ CHR="";;
+ /*)
+ CHR="chroot $CHROOT";;
+ *)
+ CHR="schroot -c $CHROOT --";;
+ esac
$CHR apt-get -d -y dist-upgrade > /dev/null
error=$?
if [ $error -ne 0 ] ; then
+# List the different chroots here, space-separated
+#
+# "/" means the normal root fs
+#
+# "/foo/bar" will chroot into /foo/bar for its updates and
+# dist-upgrades
+#
+# "foobar" will use "schroot -c foobar" for its updates and
+# dist-upgrades
+# These can be mixed and matched as desired
CHROOTS="/"
+
+# Should the system download the debs needed for the upgrades
+# automatically? Will save waiting for a download later.
DOWNLOAD_DEBS="yes"
+
+# If there are updates needed, who should be told?
MAILTO="postmaster"