summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Shumaker <LukeShu@sbcglobal.net>2012-11-28 20:11:37 -0500
committerLuke Shumaker <LukeShu@sbcglobal.net>2012-11-28 20:11:37 -0500
commit3dd016bc124802c99a0461e8630690d7b4db41e6 (patch)
tree116a5ea5cd1421f216d9eab508e7c35c4425ff3f
parent71421456a1694200380fbb5f2e74a403f6a3cb17 (diff)
fix really bad, data-deleting bugv20121128.5
-rw-r--r--Makefile2
-rw-r--r--lib/common.sh13
2 files changed, 9 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index 1a731e8..25a643d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-V=20121128.4
+V=20121128.5
PREFIX = /usr/local
diff --git a/lib/common.sh b/lib/common.sh
index 5204091..1ef677c 100644
--- a/lib/common.sh
+++ b/lib/common.sh
@@ -57,13 +57,19 @@ stat_done() {
printf "${BOLD}done${ALL_OFF}\n" >&2
}
+_setup_workdir=false
setup_workdir() {
[[ -z $WORKDIR ]] && WORKDIR=$(mktemp -d --tmpdir "${0##*/}.XXXXXXXXXX")
+ _setup_workdir=true
+ trap 'trap_abort' INT QUIT TERM HUP
+ trap 'trap_exit' EXIT
}
cleanup() {
- [[ -n $WORKDIR ]] && rm -rf "$WORKDIR"
- [[ $1 ]] && exit $1
+ if [[ -n $WORKDIR ]] && $_setup_workdir; then
+ rm -rf "$WORKDIR"
+ fi
+ [[ -n $1 ]] && exit $1
}
abort() {
@@ -86,9 +92,6 @@ die() {
cleanup 1
}
-trap 'trap_abort' INT QUIT TERM HUP
-trap 'trap_exit' EXIT
-
##
# usage : in_array( $needle, $haystack )
# return : 0 - found