diff options
-rwxr-xr-x | src/git-permalink.sh.in | 28 | ||||
-rwxr-xr-x | tests/cli-opts.sh | 6 |
2 files changed, 16 insertions, 18 deletions
diff --git a/src/git-permalink.sh.in b/src/git-permalink.sh.in index e0367bc..9c26293 100755 --- a/src/git-permalink.sh.in +++ b/src/git-permalink.sh.in @@ -94,19 +94,18 @@ version() { printf 'git-permalink-@VERSION@ @DATE@\n' } -PRINTONLY=false -while getopts 'phV' flag; do +# shellcheck disable=2068 +for flag in $@; do case "$flag" in - p) - PRINTONLY=true - shift + --) + break ;; - h) + --help) usage help exit ;; - V) + --version) version exit ;; @@ -115,19 +114,18 @@ while getopts 'phV' flag; do esac done -# shellcheck disable=2068 -for flag in $@; do +PRINTONLY=false +while getopts 'phV' flag; do case "$flag" in - --) - shift - break + p) + PRINTONLY=true ;; - --help) + h) usage help exit ;; - --version) + V) version exit ;; @@ -136,6 +134,8 @@ for flag in $@; do esac done +shift $(($OPTIND - 1)) + if [ -z "${1:-}" ]; then printf '%s\n\n' "$MSG_MISSING_FILE" >&2 usage >&2 diff --git a/tests/cli-opts.sh b/tests/cli-opts.sh index 26d2a58..dae3fbd 100755 --- a/tests/cli-opts.sh +++ b/tests/cli-opts.sh @@ -98,10 +98,9 @@ test_help_flags() { OUT="$(mktemp)" ERR="$(mktemp)" - LANG=en_US.UTF-8 sh git-permalink --something somethign -h 1>"$OUT" 2>"$ERR" + LANG=en_US.UTF-8 sh git-permalink --something something -h 1>"$OUT" 2>"$ERR" STATUS=$? assert_status 0 - assert_empty_stderr assert_usage "$OUT" assert_fgrep_stdout 'Usage' assert_fgrep_stdout 'Options' @@ -141,10 +140,9 @@ test_version_flags() { OUT="$(mktemp)" ERR="$(mktemp)" - sh git-permalink --abc xyz -V 1>"$OUT" 2>"$ERR" + sh git-permalink -V --abc xyz 1>"$OUT" 2>"$ERR" STATUS=$? assert_status 0 - assert_empty_stderr assert_grep_stdout "$REGEX" OUT="$(mktemp)" |