]> gitweb.fluxo.info Git - hydra.git/commitdiff
Adding chroot-upgrade and clean option to upgrade
authorSilvio Rhatto <rhatto@riseup.net>
Thu, 12 Dec 2013 13:17:42 +0000 (11:17 -0200)
committerSilvio Rhatto <rhatto@riseup.net>
Thu, 12 Dec 2013 13:17:42 +0000 (11:17 -0200)
share/hydractl/chroot-upgrade [new file with mode: 0755]
share/hydractl/upgrade

diff --git a/share/hydractl/chroot-upgrade b/share/hydractl/chroot-upgrade
new file mode 100755 (executable)
index 0000000..51cd919
--- /dev/null
@@ -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
+# <http://www.gnu.org/licenses/>.
+
+# 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
index cc3e98526cc9ad9a2b940a62f45fab3941016d4c..d0ccde98fa76d38e1d3b6ce0bf6ae9beacbc287d 100755 (executable)
@@ -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