| 1 | #! /bin/sh |
| 2 | |
| 3 | set -e |
| 4 | ext="" |
| 5 | while :; do |
| 6 | case "$#:$1" in |
| 7 | 0:* | *:-h | *:--help) |
| 8 | echo "Usage: $0 [-e EXT] PROG ARGS..." |
| 9 | echo " Buffer stdin to temp file and pass to PROG with ARGS" |
| 10 | exit 0 |
| 11 | ;; |
| 12 | 1:-e) echo >&2 "$0: missing argument"; exit 1 ;; |
| 13 | *:-e) ext=$2; shift 2 ;; |
| 14 | *:-e*) ext=${1#-e}; shift ;; |
| 15 | *:--) shift; break ;; |
| 16 | *:-*) echo >&2 "$0: unknown option \`$1'"; exit 1 ;; |
| 17 | *) break ;; |
| 18 | esac |
| 19 | done |
| 20 | tmp=${TMPDIR-/tmp}/buf-$$ |
| 21 | mkdir "$tmp" |
| 22 | trap 'rm -rf "$tmp"' INT QUIT TERM HUP EXIT |
| 23 | cat >"$tmp/buf$ext" |
| 24 | set +e; "$@" "$tmp/buf$ext"; st=$?; set -e |
| 25 | trap '' INT QUIT TERM HUP EXIT |
| 26 | rm -rf "$tmp" |
| 27 | exit $st |