From f1baab604b076c8c6f4070f02828e945051197d7 Mon Sep 17 00:00:00 2001 From: Raman Gupta Date: Wed, 29 Jul 2020 22:01:30 -0400 Subject: [PATCH] Fix tmp directory cleanup with verbose Can't set multiple traps on the same signal -- ensure that when the verbose option is set, the regular cleanup is done in addition to the lockfile cleanup. --- scan | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/scan b/scan index 05c0634..6217615 100755 --- a/scan +++ b/scan @@ -27,8 +27,12 @@ DRIVER_OPTION= VERBOSE=0 SKIP_EMPTY_PAGES=0 -TMP_DIR=$(mktemp -d) -trap "rm -rf $TMP_DIR" 0 +TMP_DIR=$(mktemp -d -p "" scan.XXXXXXXXXX) +cleanup() +{ + rm -rf "$TMP_DIR" +} +trap cleanup EXIT # Parse command-line options while [ $# -gt 0 ]; do @@ -214,11 +218,10 @@ export SKIP_EMPTY_PAGES if [ $VERBOSE = 1 ]; then LOCKFILE=$(mktemp) - trap "rm -rf $LOCKFILE" 0 + trap "cleanup; rm -rf $LOCKFILE" EXIT export LOCKFILE fi; - echo >&2 "Scanning..." #eval strace -f -o /tmp/scan-trace.txt scanadf -d $DEVICE $MAXPAGE $PGHEIGHT $PGWIDTH -S $SCRIPT --script-wait --resolution $RESOLUTION --mode $MODE $DESKEW $CROP $SOURCE -o scan-%04d eval scanadf -d "$DEVICE" $MAXPAGE $PGHEIGHT $PGWIDTH -S $SCRIPT --script-wait --resolution $RESOLUTION --mode $MODE $DESKEW $CROP $DRIVER_OPTION $SOURCE -o $TMP_DIR/scan-%04d