X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=scripts%2Fvrpm;h=0bae9dd9ac9dc7f56c339d7d531f3f301d645c70;hb=aef27fccf1233db3093360db9415bab037b29b4e;hp=de53ec8b33beb5d99675a505d8c2f21a8c557a5e;hpb=9c78378bebc1a9f3d400f422df8ede9efea57dea;p=util-vserver.git diff --git a/scripts/vrpm b/scripts/vrpm index de53ec8..0bae9dd 100755 --- a/scripts/vrpm +++ b/scripts/vrpm @@ -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,34 @@ 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,$VS_ALLVSERVERS_ARGS -n "$0" -- "$@") || exit 1 +eval set -- "$tmp" + +declare -a send_through vsomething_opts -while test "$#" -ge 1; do +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" );; + (--) 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=vrpm +VSOMETHING_WORKER=$_VRPM_WORKER +VSOMETHING_PKGMGMT=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[@]}" "$@"