chiark / gitweb /
ubuntu-paste: convert to python3/argparse/requests
[bin.git] / rosetta-merge
index b34676cfc1dae68882259d28d295bcfd26f56285..a1b50193696adf8f7371b436a0d670c06b41a75c 100755 (executable)
@@ -1,22 +1,44 @@
 #! /bin/bash
 
-APPLY=false
-if [ "$1" = --apply ]; then
-       APPLY=:
-       shift
-fi
+usage () {
+       [ "$1" = 0 ] || exec >&2
+       echo "Usage: $0 [--apply] [--keep-old] [--prefix PREFIX] SOURCE LANG"
+       exit "$1"
+}
 
-KEEP_OLD=false
-if [ "$1" = --keep-old ]; then
-       KEEP_OLD=:
-       shift
-fi
+die_getopt () {
+       echo "getopt failed" >&2
+       exit 1
+}
 
+APPLY=false
+KEEP_OLD=false
 PREFIX=
-if [ "$1" = --prefix ]; then
-       PREFIX="$2-"
-       shift 2
-fi
+eval set -- "$(getopt -o '' -l apply,keep-old,prefix:,help -- "$@")" || die_getopt
+while :; do
+       case $1 in
+               --apply)
+                       APPLY=:
+                       shift
+                       ;;
+               --keep-old)
+                       KEEP_OLD=:
+                       shift
+                       ;;
+               --prefix)
+                       PREFIX="${2%-}-"
+                       shift 2
+                       ;;
+               --help)
+                       usage 0
+                       shift
+                       ;;
+               --)     shift; break ;;
+               *)      die_getopt ;;
+       esac
+done
+
+[ "$1" ] || usage 1
 
 SOURCE="$1"
 shift