diff options
Diffstat (limited to 'src/jail-upgrade')
-rwxr-xr-x | src/jail-upgrade | 173 |
1 files changed, 0 insertions, 173 deletions
diff --git a/src/jail-upgrade b/src/jail-upgrade deleted file mode 100755 index 0c3d236..0000000 --- a/src/jail-upgrade +++ /dev/null @@ -1,173 +0,0 @@ -#!/bin/bash -# -# jail-upgrade v0.5: upgrade packages in jails -# feedback: rhatto@riseup.net | GPL -# -# Jail-upgrade is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or any later version. -# -# Jail-upgrade 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 General Public License for more details. -# -# You should have received a copy of the GNU General Public License along with -# this program; if not, write to the Free Software Foundation, Inc., 59 Temple -# Place - Suite 330, Boston, MA 02111-1307, USA -# - -COMMON="/usr/libexec/simplepkg/common.sh" - -function jail_upgrade { - - local patches_dir storage_dir - - echo upgrading jail $1... - - if [ "$SIMPLARET" == "simplaret" ]; then - - VERSION="`default_version`" - ARCH="`default_arch`" - - if [ -z "$ARCH" ]; then - ARCH="i386" - fi - - patches_dir="$PATCHES_DIR/$ARCH/$VERSION" - storage_dir="$STORAGE/$ARCH/$VERSION" - - elif [ "$SIMPLARET" == "swaret" ]; then - - patches_dir="$PACTHES_DIR" - storage_dir="$STORAGE" - - fi - - if [ -d "$patches_dir" ]; then - for file in `find $patches_dir -name *tgz`; do - pack=`package_name $file` - if check_for_upgrade $file $1; then - ROOT=$1 upgradepkg $file - upgraded $pack - fi - done - else - if [ "$SIMPLARET" == "simplaret" ]; then - echo error: cant upgrade for arch $ARCH and version $VERSION on $1: no such patch dir $patches_dir - elif [ "$SIMPLARET" == "swaret" ]; then - echo error: cant upgrade on $1: no such patch dir $patches_dir - fi - fi - - # optionally, search all packages in the repositories and apply a patch if: - # - the package is installed in the jail - # - it hasn't already applied in the jail - # - has different version or build from the current installed package - if [ "$CONSIDER_ALL_PACKAGES_AS_PATCHES" == "YES" ] || - [ "$CONSIDER_ALL_PACKAGES_AS_PATCHES" == "1" ]; then - if [ -d "$storage_dir" ]; then - for file in `find $storage_dir -name *tgz`; do - pack=`package_name $file` - if check_for_upgrade $file $1; then - # the package is installed - if ! echo $UPGRADED | grep -q $pack; then - # it hasnt already applied - ROOT=$1 upgradepkg $file - upgraded $pack - fi - fi - done - fi - fi - - # clear the upgraded package list - unset UPGRADED - -} - -function check_for_upgrade { - - # check if package $1 is installed in the $2 root environment - # and should be upgraded - local pack found file - - found="0" - file="$1" - pack="`package_name $file`" - - if [ -d "$2/var/log/packages/" ] && [ ! -z "$file" ]; then - for installed in `ls $2/var/log/packages/$pack* 2> /dev/null`; do - if [[ "$pack" == "`package_name $installed.tgz`" ]]; then - if [[ "`basename $installed`" != "`basename $file .tgz`" ]]; then - found="1" - fi - fi - done - fi - - # if the package is installed, return true, otherwise false - if [ "$found" == "0" ]; then - return 1 - elif [ "$found" == "1" ]; then - return 0 - fi - -} - -function upgraded { - - UPGRADED="$UPGRADED $1 " - -} - -if [ -f "$COMMON" ]; then - source $COMMON - eval_config `basename $0` -else - echo "error: file $COMMON not found, check your `basename $0` installation" - exit 1 -fi - -if [ ! -z "$PATCHES" ]; then - if [ -d "$PATCHES" ]; then - PATCHES_DIR="$PATCHES" - else - echo "error: folder $PATCHES does not exist" - fi -fi - -if [ "$SIMPLARET" != "simplaret" ] || [ "$SIMPLARET" == "swaret" ]; then - echo invalid value $SIMPLARET for SIMPLARET, please check your $CONF - exit 1 -fi - -UPGRADED="" - -if [ -z "$1" ]; then - if [ -d "/var/log/packages" ]; then - jail_upgrade / - fi - for vserver in `ls $JAIL_ROOT`; do - if [ -d "$JAIL_ROOT/$vserver/var/log/packages" ]; then - jail_upgrade $JAIL_ROOT/$vserver - fi - done -elif [ -d "$JAIL_ROOT/$1" ]; then - if [ -d "$JAIL_ROOT/$1/var/log/packages" ]; then - jail_upgrade $JAIL_ROOT/$1 - else - echo error: jail $JAIL_ROOT/$1 dont looks like a slackware system - fi - elif [ -f "$1" ]; then - basename="`basename $1 tgz`" - if [ "`basename $1 | sed -e "s/^$basename//"`" == "tgz" ]; then - arch="`package_arch $1`" - # TODO - # - atualizar nas jaulas de mesma arquitetura - true - fi -else - echo "error: jail $0 does not exist" - exit 1 -fi - |