X-Git-Url: https://git.madduck.net/etc/mutt.git/blobdiff_plain/5d703418aa569e86356fde617d171817023a3c9d..cac8e91ad4dd57a2d8c01fe9778a6bc9ca86350a:/.mutt/bgrun diff --git a/.mutt/bgrun b/.mutt/bgrun index 5e30cf0..82e1748 100755 --- a/.mutt/bgrun +++ b/.mutt/bgrun @@ -52,6 +52,13 @@ get_file() { fi } +notify_output() { + if [ -s "$TMPDIR/output.stdout" ] || [ -s "$TMPDIR/output.stderr" ]; then + notify $TMPDIR/output.stdout $TMPDIR/output.stderr \ + "Output from mutt/$SELF on $BASENAME" + fi +} + case "$SELF" in (bgrun) # make a copy of the file, then launch a shell process in the background @@ -60,10 +67,7 @@ case "$SELF" in FILE="$(get_file "${1:-}")" ( launch_viewer "$MIMETYPE" "$FILE" - if [ -s "$TMPDIR/output.stdout" ] || [ -s "$TMPDIR/output.stderr" ]; then - notify $TMPDIR/output.stdout $TMPDIR/output.stderr \ - "Output from mutt/$SELF on $BASENAME" - fi + notify_output sleep 1 cleanup ) & @@ -82,7 +86,17 @@ case "$SELF" in # the previous three lines: ## cat > "$FIFO" & launch_viewer "$MIMETYPE" "${FIFO}" + notify_output wait cleanup ;; + (bgrun-delay) + # hack to stay around for a fixed period of time after the viewer process + # returns control to the caller, so that we can clean up. This is for + # cases when the FIFO method doesn't work, because e.g. Firefox randomly + # chooses it needs to read HTML files twice. + FILE="$(get_file "${1:-}")" + (launch_viewer "$MIMETYPE" "${FILE}" && notify_output) & + (sleep 1m && cleanup) & + ;; esac