X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=scripts%2Fvserver-build.functions;h=1df67e584297e206ee698b6a3249a05b6757b261;hb=64e374135d24a1624561c814ad3e650ffbd5ee74;hp=f3536d777f1633b2c67cc384fc7992bdb29bb0ad;hpb=0420839d6098836420fa506833d4958d5c48451a;p=util-vserver.git diff --git a/scripts/vserver-build.functions b/scripts/vserver-build.functions index f3536d7..1df67e5 100644 --- a/scripts/vserver-build.functions +++ b/scripts/vserver-build.functions @@ -240,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[@]}" }