$_VSERVER_INFO - FEATURE migrate || exec $_CHCONTEXT_COMPAT "$@"
-tmp=$(getopt -o + --long cap:,ctx:,xid:,disconnect,domainname:,flag:,hostname:,secure,silent,help,version -n "$0" -- "$@") || exit 1
+tmp=$(getopt -o + --long cap:,ctx:,xid:,disconnect,domainname:,flag:,hostname:,secure,silent,help,version,spaces: -n "$0" -- "$@") || exit 1
eval set -- "$tmp"
OPT_CAPS=()
OPT_SECURE=
OPT_SILENT=
OPT_INITPID=
+OPT_SPACES=--default
while true; do
case "$1" in
;;
--secure) OPT_SECURE=1;;
--silent) OPT_SILENT=1;;
+ --spaces) OPT_SPACES=$2; shift;;
--) shift; break;;
*) echo $"chcontext: internal error; arg=='$1'" >&2; exit 1;;
esac
shift
done
-create_cmd=( ${OPT_CTX:+$_VTAG --create --tag "$OPT_CTX" --silentexist --}
+create_cmd=( ${OPT_CTX:+$_VTAG --create --tag "$OPT_CTX" --silentexist --silent --}
+ $_VSPACE --new $OPT_SPACES --
$_VCONTEXT --create --silentexist
${OPT_SILENT:+--silent}
${OPT_CTX:+--xid "$OPT_CTX"} )
old_IFS=$IFS
IFS=,$IFS
+chain_cmd=( "${chain_cmd[@]}"
+ --
+ $_VSPACE --set $OPT_SPACES )
+
test -z "$OPT_DOMAINNAME$OPT_HOSTNAME" || \
chain_cmd=( "${chain_cmd[@]}"
--
${OPT_CAPS:+--bcap "${OPT_CAPS[*]}"}
${OPT_FLAGS:+--flag "${OPT_FLAGS[*]}"} )
-migrate_cmd=( $_VTAG --migrate --tag "$OPT_CTX"
- --
- $_VCONTEXT
+migrate_cmd=( $_VCONTEXT
${OPT_SILENT:+--silent}
${OPT_DISCONNECT:+--disconnect}
$OPT_INITPID )
IFS=$old_IFS
-if test -z "$OPT_CTX" || $_VSERVER_INFO -q "$OPT_CTX" XIDTYPE static; then
+$_VSERVER_INFO -q "$OPT_CTX" XIDTYPE static
+is_static=$?
+test -z "$OPT_CTX"
+is_dynamic=$?
+
+if test "$is_dynamic" -eq 0 || test "$is_static" -eq 0; then
"${create_cmd[@]}" "${chain_cmd[@]}" -- \
"${migrate_cmd[@]}" --endsetup --migrate-self -- "$@"
rc=$?
rc=254
fi
-test "$rc" -ne 254 || exec "${migrate_cmd[@]}" --xid "$OPT_CTX" --migrate -- "$@"
+if test "$is_static" -eq 0; then
+ migrate_cmd=( $_VTAG --migrate --tag "$OPT_CTX" --silent -- \
+ $_VSPACE --enter "$OPT_CTX" $OPT_SPACES -- \
+ "${migrate_cmd[@]}" )
+fi
+
+
+test "$rc" -ne 254 || exec "${migrate_cmd[@]}" --xid "$OPT_CTX" --migrate -- \
+ "$@"
exit $rc