From 4a7266651c7f1575953c50257a3bb3d2c4bf9490 Mon Sep 17 00:00:00 2001 From: "martin f. krafft" Date: Tue, 23 Oct 2018 14:14:26 +1300 Subject: [PATCH] generalise bgrunning via FIFO --- .mutt/bgrun | 21 +++++++++++---------- .mutt/{browserrun => bgrun-fifo} | 0 .mutt/mailcap.backgrounding | 2 +- 3 files changed, 12 insertions(+), 11 deletions(-) rename .mutt/{browserrun => bgrun-fifo} (100%) diff --git a/.mutt/bgrun b/.mutt/bgrun index 937542d..6e16630 100755 --- a/.mutt/bgrun +++ b/.mutt/bgrun @@ -37,13 +37,14 @@ launch_viewer() { run-mailcap --action=view "$1":"$2" > output.stdout 2> output.stderr } +MIMETYPE="$1" +TEMPFILE=$(tempfile -d . -p mutt -s $(guess_extension "$MIMETYPE")) + case "$SELF" in (bgrun) # make a copy of the file, then launch a shell process in the background # to divert to run-mailcap, after which the temporary directory gets # cleaned up. - MIMETYPE="$1" - TEMPFILE=$(tempfile -d . -p mutt -s $(guess_extension "$MIMETYPE")) cat > "$TEMPFILE" ( launch_viewer "$MIMETYPE" "$TEMPFILE" @@ -55,19 +56,19 @@ case "$SELF" in ) & trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15 ;; - (browserrun) - # hack to stay around until the browser has read the file: make a fifo and + (bgrun-fifo) + # hack to stay around until the viewer has read the file: make a fifo and # wait for the cat process to finish writing to it, which means that it # must have been consumed on the other end. - mkfifo mutt.html - TEMPFILE=$(tempfile -d . -p mutt -s .html) cat > "$TEMPFILE" - cat "$TEMPFILE" > mutt.html & - # For some reason, we do have to write a tempfile and cannot seem tu + FIFO="${TEMPFILE%/*}/fifo-${TEMPFILE##*/}" + mkfifo "$FIFO" + cat "$TEMPFILE" > "$FIFO" & + # For some reason, we do have to write a tempfile and cannot seem to # redirect stdin directly to the fifo, i.e. this does not work instead of # the previous three lines: - ## cat > mutt.html & - launch_viewer text/html ${PWD}/mutt.html + ## cat > "$FIFO" & + launch_viewer "$MIMETYPE" "${FIFO}" wait cleanup ;; diff --git a/.mutt/browserrun b/.mutt/bgrun-fifo similarity index 100% rename from .mutt/browserrun rename to .mutt/bgrun-fifo diff --git a/.mutt/mailcap.backgrounding b/.mutt/mailcap.backgrounding index bfb4554..3e12f18 100644 --- a/.mutt/mailcap.backgrounding +++ b/.mutt/mailcap.backgrounding @@ -1,7 +1,7 @@ # # Mutt mailcap for backgrounding -text/html; ~/.mutt/browserrun; description=Open file in browser via FIFO +text/html; ~/.mutt/bgrun-fifo %t; description=Open file in browser via FIFO application/*; ~/.mutt/bgrun %t; description=Backgrounded run of run-mailcap image/*; ~/.mutt/bgrun %t; description=Backgrounded run of run-mailcap #multipart/related; ~/.mutt/viewmailattachments; description=Backgrounded loading of HTML message with related parts -- 2.39.2