_VS_LOCKS="$@"
}
+function _getVserverDir
+{
+ local vserver="$1"
+ case "$vserver" in
+ ./*) VSERVER_DIR=`pwd`/$vserver ;;
+ /*) VSERVER_DIR=$vserver ;;
+ *) VSERVER_DIR=$__CONFDIR/$vserver;;
+ esac
+}
+
function _pkgMountBindDir()
{
test "$1" != "$2" || return 0
$"Usage: $0 <vserver-name>* [--all] -- <params>+
Report bugs to <$PACKAGE_BUGREPORT>."
- exit $1
+ exit 0
}
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 "${vsomething_opts[@]}" "$@"
. "$UTIL_VSERVER_VARS"
. "$_LIB_FUNCTIONS"
+
function showHelp()
{
echo \
-$"Usage: $0 <vserver-name>* [--all] [--quiet|-q] [--help] [--version] [--unify] -- <rpm-params>+
+$"Usage: $0 <vserver-name>* [--all] -- <params>+
Report bugs to <$PACKAGE_BUGREPORT>."
-
- exit $1
+ exit 0
}
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,all -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" );;
+ (--all) vsomething_opts=( "${vsomething_opts[@]}" "$1" );;
+ (--) shift; break;;
+ (*) echo $"vrpm: 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=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[@]}" "$@"
}
. "$UTIL_VSERVER_VARS"
. "$_LIB_FUNCTIONS"
+. "$__PKGLIBDIR/vserver.functions"
function showHelp()
if pkgmgmt.isInternal "$i"; then
$_VSERVER "$i" exec "$cmd" "$@"
else
- callInNamespace "$i" \
- "$_VNAMESPACE" --new -- "$VSOMETHING_WORKER" "$i" "$@"
+ _getVserverDir "$i"
+ ( _generateChbindOptions "$VSERVER_DIR"
+ $_VSERVER "$i" status &> /dev/null && \
+ CHBIND_CMD=( "$_CHBIND" "${CHBIND_OPTS[@]}" -- )
+ callInNamespace "$i" \
+ "$_VNAMESPACE" --new -- \
+ "${CHBIND_CMD[@]}" \
+ "$VSOMETHING_WORKER" "$i" "$@" )
fi
else
"$cmd" "$i" "$@"