X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fscripts%2Fvrpm;h=fc3b9ad103bea5a8f05235b6695be506f7a9d57d;hb=f0615a808ddf2aa6e417b9a536e99d40f5b6896d;hp=f4f571b0e7455c841ff325724626ec6fb4b9985f;hpb=9aa4164f68b34f283ff8878de3d6a5b9ea4faea6;p=util-vserver.git diff --git a/util-vserver/scripts/vrpm b/util-vserver/scripts/vrpm index f4f571b..fc3b9ad 100755 --- a/util-vserver/scripts/vrpm +++ b/util-vserver/scripts/vrpm @@ -18,7 +18,7 @@ : ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars} test -e "$UTIL_VSERVER_VARS" || { - echo "Can not find util-vserver installation; aborting..." + echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2 exit 1 } . "$UTIL_VSERVER_VARS" @@ -27,7 +27,7 @@ test -e "$UTIL_VSERVER_VARS" || { function showHelp() { echo \ -$"Usage: $0 * [--all] [--help] [--version] [--unify] -- + +$"Usage: $0 * [--all] [--quiet|-q] [--help] [--version] [--unify] -- + Report bugs to <$PACKAGE_BUGREPORT>." @@ -48,10 +48,14 @@ the GNU General Public License. This program has absolutely no warranty." } do_unify= +is_quiet= declare -a vservers=() while test "$#" -ge 1; do case "$1" in + --quiet|-q) + is_quiet=1 + ;; --all) getAllVservers tmp vservers=( "${vservers[@]}" "${tmp[@]}" ) @@ -71,13 +75,34 @@ while test "$#" -ge 1; do 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 ] - "$_NEW_NAMESPACE" "$_VRPM_WORKER" "$i" "$@" + + test "$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 "$is_quiet" || echo done test -z "$do_unify" || echo "unify currently unsupported" >&2