fixed migrate vs. migrate-self
[util-vserver.git] / util-vserver / scripts / chcontext
index 8ea6f62..dbb7ab4 100755 (executable)
@@ -133,22 +133,28 @@ create_cmd=( $_VCONTEXT --create
             ${OPT_SILENT:+--silent}
             ${OPT_CTX:+--xid "$OPT_CTX"} )
 
-chain_cmd=(  $_VATTRIBUTE -s
-            ${OPT_CAPS:+--cap "${OPT_CAPS[@]}"}
-            ${OPT_FLAGS:+--flag "${OPT_FLAGS[@]}"}
-            ${OPT_SECURE:+--secure}
-           
-             $_VUNAME -s
-            ${OPT_DOMAINNAME:+--domainname "$OPT_DOMAINNAME"}
-            ${OPT_HOSTNAME:+--nodename "$OPT_HOSTNAME"} )
-
-migrate_cmd=( $_VCONTEXT --migrate-self
+chain_cmd=()
+test -z "$OPT_CAPS$OPT_FLAGS$OPT_SECURE" || \
+    chain_cmd=( "${chain_cmd[@]}"
+               --
+               $_VATTRIBUTE --set
+               ${OPT_CAPS:+--cap "${OPT_CAPS[@]}"}
+               ${OPT_FLAGS:+--flag "${OPT_FLAGS[@]}"}
+               ${OPT_SECURE:+--secure} )
+
+test -z "$OPT_DOMAINNAME$OPT_HOSTNAME" || \
+    chain_cmd=( "${chain_cmd[@]}"
+               --
+               $_VUNAME -s
+               ${OPT_DOMAINNAME:+--domainname "$OPT_DOMAINNAME"}
+               ${OPT_HOSTNAME:+--nodename "$OPT_HOSTNAME"} )
+
+migrate_cmd=( $_VCONTEXT
              ${OPT_SILENT:+--silent}
-             ${OPT_DISCONNECT:+--disconnect}
-             -- "$@" )
+             ${OPT_DISCONNECT:+--disconnect} )
 
-"${create_cmd[@]}" "${chain_cmd[@]}" "${migrate_cmd[@]}"
+"${create_cmd[@]}" "${chain_cmd[@]}" -- "${migrate_cmd[@]}" --migrate-self -- "$@"
 rc=$?
 
-test "$rc" -ne 254 || exec "${migrate_cmd[@]}"
+test "$rc" -ne 254 || exec "${migrate_cmd[@]}" --migrate -- "$@"
 exit $rc