From 103334fc729de2c982c83b4886faad40ff5e32ce Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Thu, 12 Dec 2013 11:17:42 -0200 Subject: Adding chroot-upgrade and clean option to upgrade --- share/hydractl/chroot-upgrade | 45 +++++++++++++++++++++++++++++++++++++++++++ share/hydractl/upgrade | 9 +++++++++ 2 files changed, 54 insertions(+) create mode 100755 share/hydractl/chroot-upgrade diff --git a/share/hydractl/chroot-upgrade b/share/hydractl/chroot-upgrade new file mode 100755 index 0000000..51cd919 --- /dev/null +++ b/share/hydractl/chroot-upgrade @@ -0,0 +1,45 @@ +#!/bin/bash +# +# Chroot mass upgrader. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public +# License along with this program. If not, see +# . + +# Basic parameters +BASE="/var/chroot/" + +# Set sudo config +if [ "`whoami`" != 'root' ]; then + sudo="sudo" +fi + +# Upgrade all chroots +for chroot in `ls $BASE`; do + folder="$BASE/$chroot" + if [ -f "$folder/etc/debian_version" ]; then + echo "Upgrading $folder..." + $sudo mount none -t proc $folder/proc + $sudo mount -o bind /dev $folder/dev + $sudo mount -o bind /var/cache/apt $folder/var/cache/apt + $sudo mount -t devpts devpts $folder/dev/pts + $sudo cp /etc/resolv.conf $folder/etc + $sudo chroot $folder apt-get update + $sudo chroot $folder apt-get dist-upgrade -y + $sudo chroot $folder apt-get autoremove -y + $sudo umount $folder/proc + $sudo umount $folder/dev/pts + $sudo umount $folder/dev + $sudo umount $folder/var/cache/apt + fi +done diff --git a/share/hydractl/upgrade b/share/hydractl/upgrade index cc3e985..d0ccde9 100755 --- a/share/hydractl/upgrade +++ b/share/hydractl/upgrade @@ -21,9 +21,18 @@ if [ "`whoami`" != 'root' ]; then sudo="sudo" fi +# Issue upgrade if ! $sudo lsof /var/lib/dpkg/lock &> /dev/null; then $sudo aptitude update $sudo aptitude safe-upgrade -y else echo "Apt is locked, aborting." fi + +# Upgrade all chroots +hydractl chroot-upgrade + +# Cleanup +if [ "$2" == "clean" ]; then + $sudo aptitude clean +fi -- cgit v1.2.3