diff options
Diffstat (limited to 'bin/plop')
| -rwxr-xr-x | bin/plop | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/bin/plop b/bin/plop new file mode 100755 index 00000000..33a1b05c --- /dev/null +++ b/bin/plop @@ -0,0 +1,39 @@ +#!/bin/sh +set -euo pipefail + +usage() { + cat <<-'EOF' + Usage: + plop [-m MODE] FILE + EOF +} + +MODE= +while getopts 'm:' flag; do + case "$flag" in + (m) + MODE="$OPTARG" + ;; + (*) + usage >&2 + exit 2 + ;; + esac +done +shift $((OPTIND - 1)) + + +FILE="${1:-}" + +eval "$(assert-arg -- "$FILE" 'FILE')" + + + +tmp="${FILE}.plop.$$" +trap "rm -f '$tmp'" EXIT + +cat > "$tmp" +if [ -n "$MODE" ]; then + chmod "$MODE" "$tmp" +fi +mv "$tmp" "$FILE" |
