X-Git-Url: https://git.madduck.net/etc/mutt.git/blobdiff_plain/4d84fc7ed0b41af710302245972f47115fcd0791..085410b14ca6c4b284e4946ef9b49a53577cf192:/.mutt/bgrun?ds=sidebyside diff --git a/.mutt/bgrun b/.mutt/bgrun index 3b7bb15..890b50e 100755 --- a/.mutt/bgrun +++ b/.mutt/bgrun @@ -6,23 +6,20 @@ 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 cd / rm -rf "$TEMPDIR" - else - notify_output fi trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15 } 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 +33,7 @@ enter_tempdir() { fi done cd $(mktemp -dp "$TMPDIR" mutt.XXXXXXXXXX) - touch $TEMPDIR_SENTINEL + mkdir $TEMPRUNDIR fi } @@ -46,9 +43,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 +62,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 +122,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 } @@ -142,7 +138,7 @@ case "$SELF" in ( ts=$(($(date +%s) + $DELAY)) launch_viewer "$FILE" "$MIMETYPE" - while [ $(date +%s) -lt $ts ]; do sleep $DELAY; done + while [ $(date +%s) -lt $ts ]; do sleep 1; done cleanup ) & trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15 @@ -175,9 +171,8 @@ case "$SELF" in (launch_viewer "$FILE" "$MIMETYPE") & ( while [ $(($(stat -c%X "$FILE") + $DELAY)) -gt $(date +%s) ]; do - sleep $DELAY + sleep 1 done - echo Cleaning up $TMPDIR… > $TMPDIR/output.stderr cleanup ) & trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15