diff --git a/lib/bash/tmpdir.sh b/lib/bash/tmpdir.sh index b0983f44..6349bf02 100644 --- a/lib/bash/tmpdir.sh +++ b/lib/bash/tmpdir.sh @@ -27,7 +27,7 @@ set -u TMPDIR="" OPT_TMPDIR=${OPT_TMPDIR:""} -# Sub: set_TMPDIR +# Sub: mk_tmpdir # Create a secure tmpdir and set TMPDIR. # # Optional Global Variables: @@ -35,7 +35,7 @@ OPT_TMPDIR=${OPT_TMPDIR:""} # # Set Global Variables: # TMPDIR - Absolute path of secure temp directory. -set_TMPDIR() { +mk_tmpdir() { if [ -n "$OPT_TMPDIR" ]; then TMPDIR="$OPT_TMPDIR" if [ ! -d "$TMPDIR" ]; then @@ -43,19 +43,21 @@ set_TMPDIR() { fi else local tool=`basename $0` - TMPDIR=`mktemp -d /tmp/${tool}.XXXXX` || die "Cannot make secure tmpdir" + local pid="$$" + TMPDIR=`mktemp -d /tmp/${tool}.${pid}.XXXXX` \ + || die "Cannot make secure tmpdir" fi } -# Sub: rm_TMPDIR +# Sub: rm_tmpdir # Remove the tmpdir and unset TMPDIR. # # Optional Global Variables: -# TMPDIR - TMPDIR set by . +# TMPDIR - TMPDIR set by . # # Set Global Variables: # TMPDIR - Set to "". -rm_TMPDIR() { +rm_tmpdir() { if [ -n "$TMPDIR" ] && [ -d "$TMPDIR" ]; then rm -rf $TMPDIR fi diff --git a/t/lib/bash/tmpdir.sh b/t/lib/bash/tmpdir.sh index 83708652..4698b04e 100644 --- a/t/lib/bash/tmpdir.sh +++ b/t/lib/bash/tmpdir.sh @@ -8,17 +8,17 @@ source "$LIB_DIR/tmpdir.sh" TEST_NAME="TMPDIR not defined" is "$TMPDIR" "" -TEST_NAME="set_TMPDIR makes secure tmpdir" -set_TMPDIR +TEST_NAME="mk_tmpdir makes secure tmpdir" +mk_tmpdir cmd_ok "test -d $TMPDIR" tmpdir=$TMPDIR; -TEST_NAME="rm_TMPDIR" -rm_TMPDIR +TEST_NAME="rm_tmpdir" +rm_tmpdir cmd_ok "test ! -d $tmpdir" -TEST_NAME="rm_TMPDIR resets TMPDIR" +TEST_NAME="rm_tmpdir resets TMPDIR" is "$TMPDIR" "" # --tmpdir @@ -30,15 +30,15 @@ is "$TMPDIR" "" TEST_NAME="--tmpdir does not exist yet" cmd_ok "test ! -d $OPT_TMPDIR" -set_TMPDIR -TEST_NAME="set_TMPDIR uses --tmpdir" +mk_tmpdir +TEST_NAME="mk_tmpdir uses --tmpdir" is "$TMPDIR" "/tmp/use--tmpdir" -TEST_NAME="set_TMPDIR creates --tmpdir" +TEST_NAME="mk_tmpdir creates --tmpdir" cmd_ok "test -d $TMPDIR" tmpdir=$TMPDIR; -TEST_NAME="rm_TMPDIR removes --tmpdir" -rm_TMPDIR +TEST_NAME="rm_tmpdir removes --tmpdir" +rm_tmpdir cmd_ok "test ! -d $tmpdir"