]>
git.madduck.net Git - etc/mutt.git/blobdiff - .mutt/bgrun
madduck's git repository
Every one of the projects in this repository is available at the canonical
URL git://git.madduck.net/madduck/pub/<projectpath> — see
each project's metadata for the exact URL.
All patches and comments are welcome. Please squash your changes to logical
commits before using git-format-patch and git-send-email to
patches@ git. madduck. net .
If you'd read over the Git project's submission guidelines and adhered to them,
I'd be especially grateful.
SSH access, as well as push access can be individually
arranged .
If you use my repositories frequently, consider adding the following
snippet to ~/.gitconfig and using the third clone URL listed for each
project:
[url "git://git.madduck.net/madduck/"]
insteadOf = madduck:
run-mailcap --action=view "$1":"$2" > output.stdout 2> output.stderr
}
run-mailcap --action=view "$1":"$2" > output.stdout 2> output.stderr
}
-MIMETYPE="$1"
-TEMPFILE=$(tempfile -d . -p mutt -s $(guess_extension "$MIMETYPE"))
+MIMETYPE="$1"; shift
+
+get_file() {
+ local t
+ if [ -z "$1" ]; then
+ t=$(tempfile -d . -p mutt -s $(guess_extension "$MIMETYPE"))
+ cat > "$t"
+ echo "$t"
+ else
+ t="$(echo ${1##*/} | sed -re 's![^[:alnum:],.@%^+=_-]!_!gi')"
+ cp "$1" "$t"
+ echo "$t"
+ 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
# to divert to run-mailcap, after which the temporary directory gets
# cleaned up.
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.
+ FILE="$(get_file "${1:-}") "
- launch_viewer "$MIMETYPE" "$TEMPFILE"
- if [ -s "$TMPDIR/output.stdout" ] || [ -s "$TMPDIR/output.stderr" ]; then
- notify $TMPDIR/output.stdout $TMPDIR/output.stderr \
- "Output from mutt/$SELF on $BASENAME"
- fi
+ launch_viewer "$MIMETYPE" "$FILE"
+ notify_output
+ sleep 1
cleanup
) &
trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15
cleanup
) &
trap - 1 2 3 4 5 6 7 8 10 11 12 13 14 15
# 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.
# 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.
- cat > "$TEMPFILE "
- FIFO="${TEMPFILE%/*}/fifo-${TEMP FILE##*/}"
+ FILE="$(get_file "${1:-}") "
+ FIFO="${FILE%/*}/fifo-${ FILE##*/}"
- cat "$TEMP FILE" > "$FIFO" &
+ cat "$FILE" > "$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 > "$FIFO" &
launch_viewer "$MIMETYPE" "${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 > "$FIFO" &
launch_viewer "$MIMETYPE" "${FIFO}"