diff options
| author | Robert Günzler <r@gnzler.io> | 2022-11-18 18:07:38 +0100 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2022-11-18 18:38:21 +0100 |
| commit | f005fbf41646437964458d4c2028e6fdc04b59a1 (patch) | |
| tree | 2db56c1d202137278c5642ed418123b882d35dc5 /bin/sponge | |
| parent | 5e6e8da510836bbb0c7ac1602d51a394ba02ab2b (diff) | |
bin: add a few scripts
Diffstat (limited to 'bin/sponge')
| -rwxr-xr-x | bin/sponge | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/bin/sponge b/bin/sponge new file mode 100755 index 0000000..7d106b4 --- /dev/null +++ b/bin/sponge @@ -0,0 +1,34 @@ +#!/bin/sh + +set -e +[ -n "$DEBUG" ] && set -x + +append= +while getopts ah opt; do + case "$opt" in + a) append=1 ;; + h | ?) + printf "usage: %s [-ah]\n\n" "$(basename "$0")" + exit 2 + ;; + esac +done +shift $((OPTIND - 1)) +outname=$1 + +tmpfile=$(mktemp) +trap '{ rm "$tmpfile"; }' EXIT + +cat - >"$tmpfile" + +if [ -n "$outname" ]; then + ( + if [ -n "$append" ]; then + tee -a "$outname" >/dev/null + else + tee "$outname" >/dev/null + fi + ) <"$tmpfile" +else + cat "$tmpfile" +fi |