chiark / gitweb /
hush.in: Use `$' prefixes on variables in arithmetic expansions.
[misc] / buf
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