From 3dd016bc124802c99a0461e8630690d7b4db41e6 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Wed, 28 Nov 2012 20:11:37 -0500 Subject: fix really bad, data-deleting bug --- Makefile | 2 +- lib/common.sh | 13 ++++++++----- 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 -- cgit v1.2.3