X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=scripts%2Fvserver-build.functions;h=1df67e584297e206ee698b6a3249a05b6757b261;hb=6cff6590dc1d10005b73d9e765d8c34ede131a59;hp=f615cad3d82b84480a2ee01538adeed02da343de;hpb=306514f985c9c1e2d569d97671bfb8479efe25fb;p=util-vserver.git diff --git a/scripts/vserver-build.functions b/scripts/vserver-build.functions index f615cad..1df67e5 100644 --- a/scripts/vserver-build.functions +++ b/scripts/vserver-build.functions @@ -44,6 +44,8 @@ function makeDevEntry (f) touch "$dst" chmod $4 "$dst" ;; + (l) ln -s "$4" "$dst" + ;; (*) echo "Unknown dev-entry mode '$3'" >&2 false ;; @@ -238,11 +240,25 @@ function base._initVariables findFile BUILD_INITPOST "$__CONFDIR/.distributions/$DISTRIBUTION/initpost" "$__DISTRIBDIR/$DISTRIBUTION/initpost" "" } +declare -a __BASE_CLEANUP +function base.pushCleanup +{ + __BASE_CLEANUP=( "${__BASE_CLEANUP[@]}" "$*" ) +} + +function base.popCleanup +{ + unset __BASE_CLEANUP[$((${#__BASE_CLEANUP[@]} - 1))] +} + function base.__cleanup { - test -z "$OPTION_KEEP" || return 0 - test -z "$__BASE_SUCCESS" || return 0 + for cmd in "${__BASE_CLEANUP[@]}"; do + $cmd + done + test -z "$__BASE_SUCCESS" || return 0 + test -z "$OPTION_KEEP" || return 0 rm -rf "${__BASE_GENERATED_FILES[@]}" } @@ -278,5 +294,5 @@ function startSleepingGuest function stopSleepingGuest { local guest="$1" - $_VKILL --xid "$guest" -s INT -- 0 + $_VSERVER "$guest" stop --rescue-init }