#!/bin/sh set -e # exit on failure IFS=$(printf '\n\t') # smarter ifs [ "$1" = "-d" ] && awk 'f;/^exit/{f=1}' "$2" | head -c-1 | zstd -cd | ifne sponge "$2" && exit [ "$1" = "-p" ] && p="$2" && shift 2 # save prefix if present zstdmt -cq19 "$@" | ifne sponge "$1" echo '#!/bin/sh dir=$(dirname "$0") out=$(mktemp -t .zzXXXX. awk "f;/^exit/{f=1}" "$0" | head -c-1 | zstd -cd > "$out" chmod +x "$out" ln -s "$out" "$dir" trap : 0 1 2 3 5 10 13 15 "$dir/$(basename "$out")" "$@" res=$? rm "$out" "$dir/$(basename "$out")" exit $res' | sed "2s/$/${1##*[./]})/;7s/^/$p /" | cat - "$1" | sponge "$1"