+++ /dev/null
-#! /bin/bash
-# $Id: vsomething 2599 2007-08-26 21:30:50Z dhozac $
-
-# Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-#
-# 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
-# the Free Software Foundation; version 2 of the License.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
-test -e "$UTIL_VSERVER_VARS" || {
- echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
- exit 1
-}
-. "$UTIL_VSERVER_VARS"
-. "$_LIB_FUNCTIONS"
-. "$__PKGLIBDIR/vserver.functions"
-
-
-function showHelp()
-{
- echo \
-$"Usage: $0 [--quiet|-q] [--debug] <cmd> [--] <vserver-name>* [--all] -- <params>+
-
-Execute <cmd> <vserver> <params>* foreach vserver.
-
-Report bugs to <$PACKAGE_BUGREPORT>."
- exit 0
-}
-
-function showVersion()
-{
- echo \
-$"vsomething $PACKAGE_VERSION -- execute something for a set of vservers
-This program is part of $PACKAGE_STRING
-
-Copyright (C) 2005 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 0
-}
-
-
-is_quiet=
-declare -a vservers=()
-
-tmp=$(getopt -o +q --long help,version,debug,quiet -n "$0" -- "$@") || exit 1
-eval set -- "$tmp"
-
-while true; do
- case "$1" in
- (--help) showHelp $0 ;;
- (--version) showVersion ;;
- (--debug) set -x;;
- (--quiet|-q) is_quiet=1 ;;
- (--) shift; break;;
- (*) echo $"vserver: internal error; arg=='$1'" >&2; exit 1;;
- esac
- shift
-done
-
-test "$#" -ge 1 || \
- panic $"vsomething: no operation specified; try '--help' for more information"
-
-cmd=$1
-title=${VSOMETHING_TITLE:-$cmd}
-shift
-
-while test "$#" -ge 1; do
- if getAllVserversByArg tmp "$1"; then
- vservers=( "${vservers[@]}" "${tmp[@]}" )
- else
- case "$1" in
- (--) shift; break;;
- (*) vservers=( "${vservers[@]}" "$1" )
- esac
- fi
- shift
-done
-
-
-test "${#vservers[@]}" -ne 1 || is_quiet=1
-
-
-cnt=0
-res=255
-for i in "${vservers[@]}"; do
- cnt=$[ cnt + 1 ]
-
- test -n "$is_quiet" || {
- colorize bold echo -n "$title: operating on vserver "
- colorize bold colorize emph echo "$i"
- xtermTitle "$title: operating on vserver '$i' [$cnt/${#vservers[@]}]"
- }
-
- if test -n "$VSOMETHING_PKGMGMT"; then
- if pkgmgmt.isInternal "$i"; then
- $_VSERVER "$i" exec "$cmd" "$@"
- else
- _setVserverDir "$i"
- # subshell so we don't have to clean up
- ( _generateChbindOptions "$VSERVER_DIR"
- $_VSERVER "$i" status &> /dev/null || \
- CHBIND_CMD=()
- callInNamespace "$i" \
- "$_VNAMESPACE" --new -- \
- "${CHBIND_CMD[@]}" \
- "$VSOMETHING_WORKER" "$i" "$@" )
- fi
- else
- "$cmd" "$i" "$@"
- fi
-
- res=$?
-
- test $res -eq 0 -o -n "$is_quiet" || {
- colorize error echo -n $"$title failed on vserver '$i' with errorcode $res"
- echo
- }
-
- test -n "$is_quiet" || echo
-done
-
-test "$cnt" -ge 0 || warning $"No vservers specified"
-exit $res