X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=scripts%2Fvapt-get;h=7e8224953f7390552989f562a5a09e1ecf23e62d;hb=a69bad017fcc766676f529fa1a78d3596087273c;hp=3cc203cad09e277a5cf96d5c01754802ab58bc5b;hpb=9c78378bebc1a9f3d400f422df8ede9efea57dea;p=util-vserver.git diff --git a/scripts/vapt-get b/scripts/vapt-get index 3cc203c..7e82249 100755 --- a/scripts/vapt-get +++ b/scripts/vapt-get @@ -31,7 +31,7 @@ function showHelp() $"Usage: $0 * [--all] -- + Report bugs to <$PACKAGE_BUGREPORT>." - exit $1 + exit 0 } function showVersion() @@ -40,60 +40,34 @@ 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,$VS_ALLVSERVERS_ARGS -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" );; + (--) shift; break;; + (*) vsomething_opts=( "${vsomething_opts[@]}" "$1" );; + esac + shift done -test "$#" -ge 1 || showHelp 1 >&2 -test "${#vservers[@]}" -ne 1 || is_quiet=1 - -cnt=0 -res=255 -for i in "${vservers[@]}"; do - cnt=$[ cnt + 1 ] +VSOMETHING_TITLE=vapt-get +VSOMETHING_WORKER=$_VAPT_GET_WORKER +VSOMETHING_PKGMGMT=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:-apt-get} "${vsomething_opts[@]}" "$@"