added lots of new flags
[util-vserver.git] / util-vserver / scripts / vserver
index 47aa6f5..05adf2f 100755 (executable)
@@ -119,7 +119,7 @@ function msg()
 set +e
 
 OPTIONS_ORIG=( "$@" )
-tmp=$(getopt -o +sv --long nonamespace,--nonamespace,--insecure,help,debug,version,sync,verbose,silent -n "$0" -- "$@") || exit 1
+tmp=$(getopt -o +sv --long nonamespace,--nonamespace,--insecure,defaulttty,help,debug,version,sync,verbose,silent -n "$0" -- "$@") || exit 1
 eval set -- "$tmp"
 
 OPTION_FORCE_SYNC=
@@ -128,6 +128,7 @@ OPTION_SILENT=
 OPTION_DEBUG=
 OPTION_NONAMESPACE=
 OPTION_INSECURE=
+OPTION_DEFAULTTTY=
 
 while true; do
     case "$1" in
@@ -138,6 +139,7 @@ while true; do
        (-s|--sync)     OPTION_FORCE_SYNC=$1;;
        (--silent)      OPTION_SILENT=$1;;
        (----nonamespace)OPTION_NONAMESPACE=$1;;
+       (--defaulttty)  OPTION_DEFAULTTTY=$1;;
        (----insecure)  OPTION_INSECURE=1;;
        (--)            shift; break;;
        (*)             echo $"vserver: internal error; arg=='$1'" >&2; exit 1;;
@@ -145,7 +147,7 @@ while true; do
     shift
 done
 
-OPTION_ALL=( $OPTION_SILENT $OPTION_VERBOSE $OPTION_DEBUG )
+OPTION_ALL=( $OPTION_SILENT $OPTION_VERBOSE $OPTION_DEBUG $OPTION_DEFAULTTTY )
 SELF=( "$0" "${OPTION_ALL[@]}" )
 
 vserver=$1
@@ -179,7 +181,7 @@ test -d "$VSERVER_DIR" || {
     echo $"\
 Can not find vserver-setup; please make sure that the vserver configuration
 is located at $VSERVER_DIR/."
-    exit 1
+    exit 5
 } >&2
 
 if test -e "$VSERVER_DIR"/name; then
@@ -233,7 +235,7 @@ case "$2" in
     (pkgmgmt)
        op=$3
        shift 3
-       exec $_PKGMGMT ${op:+--$op} "$@" -- "$vserver"
+       exec $_VNAMESPACE --new -- $_PKGMGMT ${op:+--$op} "$@" -- "$vserver"
        ;;
 
     (apt-get|apt-config|apt-cache)
@@ -255,8 +257,8 @@ case "$2" in
            fi
            exit 0
        else
-           msg $"Vserver '$vserver' is not running"
-           exit 1
+           msg $"Vserver '$vserver' is stopped"
+           exit 3
        fi
        ;;
     (*)