(f) touch "$dst"
chmod $4 "$dst"
;;
+ (l) ln -s "$4" "$dst"
+ ;;
(*) echo "Unknown dev-entry mode '$3'" >&2
false
;;
{
local spec
- mkdir -p -m755 "$VDIR"/dev/pts
+ mkdir -p -m755 "$VDIR"/dev
+ mkdir -m755 "$VDIR"/dev/pts
while read spec; do
makeDevEntry "$VDIR"/dev $spec
mkdir -p -m755 "$VDIR"
$_SETATTR --~barrier "$VDIR"
+ $_SETATTR --barrier "$VDIR"/.. || colwarn $"\
+WARNING: could not set the barrier attribute on '$VDIR/..',
+ please set it manually."
base._addGeneratedFile "$VDIR"
mkdir -p -m755 "$SETUP_CONFDIR"/apps "$VDIR"/etc
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[@]}"
}
function startSleepingGuest
{
local guest="$1"
- local timeout="$2"
+ local timeout="${2:-15}"
$_VSERVER "$guest" start --rescue --rescue-init bash -c "
exec > /dev/null
exec 2> /dev/null
function stopSleepingGuest
{
local guest="$1"
- $_VKILL --xid "$guest" -s INT -- 1
+ $_VSERVER "$guest" stop --rescue-init
}