diff -Nurp util-vserver-0.30.210.orig/scripts/functions util-vserver-0.30.210.pkgmgmt/scripts/functions --- util-vserver-0.30.210.orig/scripts/functions 2006-01-22 13:24:25.000000000 +0100 +++ util-vserver-0.30.210.pkgmgmt/scripts/functions 2006-07-28 20:13:29.000000000 +0200 @@ -268,6 +268,16 @@ function unlock _VS_LOCKS="$@" } +function _getVserverDir +{ + local vserver="$1" + case "$vserver" in + ./*) VSERVER_DIR=`pwd`/$vserver ;; + /*) VSERVER_DIR=$vserver ;; + *) VSERVER_DIR=$__CONFDIR/$vserver;; + esac +} + function _pkgMountBindDir() { test "$1" != "$2" || return 0 diff -Nurp util-vserver-0.30.210.orig/scripts/vapt-get util-vserver-0.30.210.pkgmgmt/scripts/vapt-get --- util-vserver-0.30.210.orig/scripts/vapt-get 2005-03-21 21:03:30.000000000 +0100 +++ util-vserver-0.30.210.pkgmgmt/scripts/vapt-get 2006-07-02 02:52:46.000000000 +0200 @@ -1,7 +1,7 @@ #! /bin/bash -# $Id: vapt-get,v 1.14 2005/01/27 21:24:44 ensc Exp $ +# $Id$ -# Copyright (C) 2003 Enrico Scholz +# Copyright (C) 2006 Enrico Scholz # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -31,7 +31,7 @@ function showHelp() $"Usage: $0 * [--all] -- + Report bugs to <$PACKAGE_BUGREPORT>." - exit $1 + exit 0 } function showVersion() @@ -40,60 +40,35 @@ function showVersion() $"vapt-get $PACKAGE_VERSION -- apt-get for vservers This program is part of $PACKAGE_STRING -Copyright (C) 2003 Enrico Scholz +Copyright (C) 2006 Enrico Scholz This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty." - exit $1 + exit 0 } -is_quiet= -declare -a vservers=() +tmp=$(getopt -o +q --long help,version,debug,quiet,all -n "$0" -- "$@") || exit 1 +eval set -- "$tmp" -while test "$#" -ge 1; do +declare -a send_through vsomething_opts + +while true; do case "$1" in - --) shift; break;; - --help) showHelp 0;; - --quiet|-q) is_quiet=1 ;; - --all) - getAllVservers tmp - vservers=( "${vservers[@]}" "${tmp[@]}" ) - ;; - --version) - showVersion 0;; - *) vservers=( "${vservers[@]}" "$1" ) - esac - shift + (--help) showHelp $0 ;; + (--version) showVersion ;; + (--debug) send_through=( "${send_through[@]}" "$1" ); set -x;; + (--quiet|-q) send_through=( "${send_through[@]}" "$1" );; + (--all) vsomething_opts=( "${vsomething_opts[@]}" "$1" );; + (--) shift; break;; + (*) echo $"vapt-get: internal error; arg=='$1'" >&2; exit 1;; + esac + shift done -test "$#" -ge 1 || showHelp 1 >&2 -test "${#vservers[@]}" -ne 1 || is_quiet=1 +VSOMETHING_TITLE=vapt-get +VSOMETHING_WORKER=$_VAPT_GET_WORKER +VSOMETHING_PKGMGMT=1 -cnt=0 -res=255 -for i in "${vservers[@]}"; do - cnt=$[ cnt + 1 ] - - test -n "$is_quiet" || { - colorize bold echo -n "vaptget: operating on vserver " - colorize bold colorize emph echo "$i" - xtermTitle "vaptget: operating on vserver '$i' [$cnt/${#vservers[@]}]" - } - - if pkgmgmt.isInternal "$i"; then - $_VSERVER "$i" exec apt-get "$@" - else - callInNamespace "$i" \ - "$_VNAMESPACE" --new -- "$_VAPT_GET_WORKER" "$i" "$@" - fi - res=$? - - test $res -eq 0 -o -n "$is_quiet" || { - colorize error echo -n $"vapt-get failed on vserver '$i' with errorcode $res" - echo - } - - test -n "$is_quiet" || echo -done +export VSOMETHING_TITLE VSOMETHING_WORKER VSOMETHING_PKGMGMT -test "$cnt" -ge 0 || echo "No vservers specified" >&2 -exit $res +test ${#vsomething_opts[@]} -eq 0 || vsomething_opts=( "${vsomething_opts[@]}" -- ) +exec $_VSOMETHING "${send_through[@]}" apt-get "${vsomething_opts[@]}" "$@" diff -Nurp util-vserver-0.30.210.orig/scripts/vrpm util-vserver-0.30.210.pkgmgmt/scripts/vrpm --- util-vserver-0.30.210.orig/scripts/vrpm 2006-06-30 05:23:14.000000000 +0200 +++ util-vserver-0.30.210.pkgmgmt/scripts/vrpm 2006-07-02 02:52:59.000000000 +0200 @@ -1,7 +1,7 @@ #! /bin/bash -# $Id: vrpm,v 1.13 2005/01/27 21:24:44 ensc Exp $ +# $Id$ -# Copyright (C) 2003 Enrico Scholz +# Copyright (C) 2006 Enrico Scholz # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -24,14 +24,14 @@ test -e "$UTIL_VSERVER_VARS" || { . "$UTIL_VSERVER_VARS" . "$_LIB_FUNCTIONS" + function showHelp() { echo \ -$"Usage: $0 * [--all] [--quiet|-q] [--help] [--version] [--unify] -- + +$"Usage: $0 * [--all] -- + Report bugs to <$PACKAGE_BUGREPORT>." - - exit $1 + exit 0 } function showVersion() @@ -40,71 +40,35 @@ function showVersion() $"vrpm $PACKAGE_VERSION -- rpm for vservers This program is part of $PACKAGE_STRING -Copyright (C) 2003 Enrico Scholz +Copyright (C) 2006 Enrico Scholz This program is free software; you may redistribute it under the terms of the GNU General Public License. This program has absolutely no warranty." - - exit $1 + exit 0 } -do_unify= -is_quiet= -declare -a vservers=() +tmp=$(getopt -o +q --long help,version,debug,quiet,all -n "$0" -- "$@") || exit 1 +eval set -- "$tmp" -while test "$#" -ge 1; do +declare -a send_through vsomething_opts + +while true; do case "$1" in - --quiet|-q) - is_quiet=1 - ;; - --all) - getAllVservers tmp - vservers=( "${vservers[@]}" "${tmp[@]}" ) - ;; - --unify) - do_unify=1 - ;; - --) - shift; break;; - --help) - showHelp 0;; - --version) - showVersion 0;; - *) vservers=( "${vservers[@]}" "$1" ) - esac - shift + (--help) showHelp $0 ;; + (--version) showVersion ;; + (--debug) send_through=( "${send_through[@]}" "$1" ); set -x;; + (--quiet|-q) send_through=( "${send_through[@]}" "$1" );; + (--all) vsomething_opts=( "${vsomething_opts[@]}" "$1" );; + (--) shift; break;; + (*) echo $"vrpm: internal error; arg=='$1'" >&2; exit 1;; + esac + shift done -test "$#" -ge 1 || showHelp 1 >&2 -test "${#vservers[@]}" -ne 1 || is_quiet=1 - -cnt=0 -res=255 +VSOMETHING_TITLE=vrpm +VSOMETHING_WORKER=$_VRPM_WORKER +VSOMETHING_PKGMGMT=1 -for i in "${vservers[@]}"; do - cnt=$[ cnt + 1 ] - - test -n "$is_quiet" || { - colorize bold echo -n "vrpm: operating on vserver " - colorize bold colorize emph echo "$i" - xtermTitle "vrpm: operating on vserver '$i' [$cnt/${#vservers[@]}]" - } - - if pkgmgmt.isInternal "$i"; then - $_VSERVER "$i" exec rpm "$@" - else - callInNamespace "$i" \ - "$_VNAMESPACE" --new -- "$_VRPM_WORKER" "$i" "$@" - fi - res=$? - - test $res -eq 0 -o "$is_quiet" || { - colorize error echo -n $"vrpm failed on vserver '$i' with errorcode $res" - echo - } - - test -n "$is_quiet" || echo -done +export VSOMETHING_TITLE VSOMETHING_WORKER VSOMETHING_PKGMGMT -test -z "$do_unify" || echo "unify currently unsupported" >&2 -test "$cnt" -ge 0 || echo "No vservers specified" >&2 -exit $res +test ${#vsomething_opts[@]} -eq 0 || vsomething_opts=( "${vsomething_opts[@]}" -- ) +exec $_VSOMETHING "${send_through[@]}" rpm "${vsomething_opts[@]}" "$@" diff -Nurp util-vserver-0.30.210.orig/scripts/vsomething util-vserver-0.30.210.pkgmgmt/scripts/vsomething --- util-vserver-0.30.210.orig/scripts/vsomething 2005-04-24 22:30:55.000000000 +0200 +++ util-vserver-0.30.210.pkgmgmt/scripts/vsomething 2006-07-28 20:29:00.000000000 +0200 @@ -23,6 +23,7 @@ test -e "$UTIL_VSERVER_VARS" || { } . "$UTIL_VSERVER_VARS" . "$_LIB_FUNCTIONS" +. "$__PKGLIBDIR/vserver.functions" function showHelp() @@ -105,8 +106,14 @@ for i in "${vservers[@]}"; do if pkgmgmt.isInternal "$i"; then $_VSERVER "$i" exec "$cmd" "$@" else - callInNamespace "$i" \ - "$_VNAMESPACE" --new -- "$VSOMETHING_WORKER" "$i" "$@" + _getVserverDir "$i" + ( _generateChbindOptions "$VSERVER_DIR" + $_VSERVER "$i" status >& /dev/null && \ + CHBIND_CMD=( "$_CHBIND" "${CHBIND_OPTS[@]}" -- ) + callInNamespace "$i" \ + "$_VNAMESPACE" --new -- \ + "${CHBIND_CMD[@]}" \ + "$VSOMETHING_WORKER" "$i" "$@" ) fi else "$cmd" "$i" "$@"