function showHelp()
{
echo \
-$"Usage: $(basename $0) [-s|--sync] [-v|--verbose] [--silent]
+$"Usage: $(basename $0) [-s|--sync] [-v|--verbose] [--silent] [--debug]
[--] <vserver> <command> <args>*
<vserver> is the name of a vserver.
allow_legacy=
+vserver="${vserver%%/}"
case "$vserver" in
- (./*) VSERVER_DIR=`pwd`/$vserver;;
- (/*) VSERVER_DIR=$vserver;;
- (*) VSERVER_DIR=$__CONFDIR/$vserver
- allow_legacy=1
- ;;
+ (./*) VSERVER_DIR="`pwd`/$vserver";;
+ (/*) VSERVER_DIR="$vserver";;
+ (*) # Check if this is a context id
+ context=$(vuname --get --xid "$vserver" 2>/dev/null)
+ if test -d "$context"; then
+ VSERVER_DIR="$context"
+ else
+ VSERVER_DIR="$__CONFDIR/$vserver"
+ do_legacy=
+ test ! -e "$VSERVER_DIR/legacy" || do_legacy=1
+ test -d "$VSERVER_DIR" -o ! -e "$__CONFDIR/$vserver.conf" || do_legacy=1
+
+ test -z "$do_legacy" || {
+ echo $"WARNING: can not find configuration, assuming legacy method" >&2
+ exec "$_VSERVER_LEGACY" "$@"
+ }
+ fi
+ ;;
esac
-if test -n "$allow_legacy"; then
- do_legacy=
- test ! -e "$VSERVER_DIR/legacy" || do_legacy=1
- test -d "$VSERVER_DIR" -o ! -e "$__CONFDIR/$vserver.conf" || do_legacy=1
-
- test -z "$do_legacy" || {
- echo $"WARNING: can not find configuration, assuming legacy method" >&2
- exec "$_VSERVER_LEGACY" "$@"
- }
-fi
-
test -d "$VSERVER_DIR" || {
echo $"\
Can not find a vserver-setup at '$VSERVER_DIR/'.
_setVserverName
# Create a new namespace when starting the guest
-test "$2" != start -o -n "$OPTION_NONAMESPACE" || isAvoidNamespace "$VSERVER_DIR" || \
+test "$cmd" != start -o -n "$OPTION_NONAMESPACE" || isAvoidNamespace "$VSERVER_DIR" || \
exec $_VNAMESPACE --new -- $_VSERVER ----nonamespace "${OPTIONS_ORIG[@]}"
# Enter the namespace early so we can test for files inside the guest
-test "$2" != enter -a "$2" != stop || \
+test "$cmd" != enter -a "$cmd" != stop || \
test -n "$OPTION_NONAMESPACE" || isAvoidNamespace "$VSERVER_DIR" || \
! isVserverRunning "$VSERVER_DIR" || \
exec $_VNAMESPACE --enter "$VSERVER_DIR" -- $_VSERVER ----nonamespace "${OPTIONS_ORIG[@]}"