From: martin f. krafft Date: Thu, 15 Aug 2019 01:16:00 +0000 (+1200) Subject: bgrun: use a subdir as sentinel and for our own workspace X-Git-Url: https://git.madduck.net/etc/mutt.git/commitdiff_plain/c6f18b8c7e3aae4672c711b159baec611a3358f5 bgrun: use a subdir as sentinel and for our own workspace --- diff --git a/.mutt/bgrun b/.mutt/bgrun index 3b7bb15..f1ad14c 100755 --- a/.mutt/bgrun +++ b/.mutt/bgrun @@ -6,9 +6,9 @@ SELF="${0##*/}" TEMPDIR= -TEMPDIR_SENTINEL=.tempdir +TEMPRUNDIR=.tempdir-run.d cleanup() { - if [ -e $TEMPDIR_SENTINEL ]; then + if [ -d $TEMPRUNDIR ]; then local TEMPDIR; TEMPDIR="$PWD" echo Cleaning up tempdir $TEMPDIR… >> output.stderr notify_output @@ -22,7 +22,7 @@ cleanup() { trap cleanup 1 2 3 4 5 6 7 8 10 11 12 13 14 15 enter_tempdir() { - if [ -e $TEMPDIR_SENTINEL ]; then + if [ -d $TEMPRUNDIR ]; then return else @@ -36,7 +36,7 @@ enter_tempdir() { fi done cd $(mktemp -dp "$TMPDIR" mutt.XXXXXXXXXX) - touch $TEMPDIR_SENTINEL + mkdir $TEMPRUNDIR fi } @@ -46,9 +46,8 @@ notify() { stdout="${2:-}" stderr="${3:-}" for i in stdout stderr; do - if eval test -s output.$i; then - anything=1 - escaped=$(eval sed -e 's,\",\\\",g' output.$i) + if eval test -s $TEMPRUNDIR/output.$i; then + escaped=$(eval sed -e 's,\",\\\",g' $TEMPRUNDIR/output.$i) output="${output:+$output }${i}: $escaped" @@ -66,12 +65,12 @@ $escaped" } notify_output() { - [ -e $TEMPDIR_SENTINEL ] || return + [ -d $TEMPRUNDIR ] || return local stdout stderr anything for i in stdout stderr; do - if [ -s "output.$i" ]; then - eval $i="'output.$i'" + if [ -s "$TEMPRUNDIR/output.$i" ]; then + eval $i="'$TEMPRUNDIR/output.$i'" else eval $i=/dev/null fi @@ -126,9 +125,9 @@ launch_viewer() { local filename; filename="$1" if [ -z "$VIEWER" ]; then [ -n "${2:-}" ] && filename="${2}:${1}" - run-mailcap "$filename" > output.stdout 2> output.stderr + run-mailcap "$filename" > $TEMPRUNDIR/output.stdout 2> $TEMPRUNDIR/output.stderr else - $VIEWER "$filename" > output.stdout 2> output.stderr + $VIEWER "$filename" > $TEMPRUNDIR/output.stdout 2> $TEMPRUNDIR/output.stderr fi }