aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/git-permalink.sh.in28
-rwxr-xr-xtests/cli-opts.sh6
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)"