X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=scripts%2Fvapt-get;h=1a8daf2dc09d5ca3806074e3fa0b465eda3e5a6f;hb=ec4370f7ebd7fb0ce7f002f5bf2c74f03acd3ec1;hp=324d1f1db4059200b688220506df2c38b978823b;hpb=9234e6a7cb48373edec38284ba54a819037b79b2;p=util-vserver.git diff --git a/scripts/vapt-get b/scripts/vapt-get index 324d1f1..1a8daf2 100755 --- a/scripts/vapt-get +++ b/scripts/vapt-get @@ -1,5 +1,5 @@ #! /bin/bash -# $Id: vapt-get,v 1.14 2005/01/27 21:24:44 ensc Exp $ +# $Id: vapt-get 2335 2006-09-28 15:10:29Z dhozac $ # Copyright (C) 2003 Enrico Scholz # @@ -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 - -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[@]}" "$@"