aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2017-05-20 03:44:23 +0300
committerZyX <kp-pav@yandex.ru>2017-05-20 03:44:23 +0300
commit7f24736ebc050a9b81d4d2db0158111486b1836b (patch)
tree25ccfc87d1882d41ed8c1057e133907ca37281d5
parentd72df05b930c7dd79f138ec371124329eb9c9259 (diff)
downloadrneovim-7f24736ebc050a9b81d4d2db0158111486b1836b.tar.gz
rneovim-7f24736ebc050a9b81d4d2db0158111486b1836b.tar.bz2
rneovim-7f24736ebc050a9b81d4d2db0158111486b1836b.zip
pvscheck: Handle invalid option error gracefully
-rwxr-xr-xscripts/pvscheck.sh19
1 files changed, 16 insertions, 3 deletions
diff --git a/scripts/pvscheck.sh b/scripts/pvscheck.sh
index 79ed08f458..949021a174 100755
--- a/scripts/pvscheck.sh
+++ b/scripts/pvscheck.sh
@@ -50,7 +50,17 @@ help() {
}
getopts_error() {
- printf '%s\n' "$1" >&2
+ local msg="$1" ; shift
+ local do_help=
+ if test "$msg" = "--help" ; then
+ msg="$1" ; shift
+ do_help=1
+ fi
+ printf '%s\n' "$msg" >&2
+ if test -n "$do_help" ; then
+ printf '\n' >&2
+ help >&2
+ fi
echo 'return 1'
return 1
}
@@ -146,8 +156,8 @@ getopts_long() {
if test -n "$opt_base" ; then
eval "local occurred_$opt_base=1"
- eval "local act_1=\"\$act_1_$opt_base\""
- eval "local varname=\"\$varname_$opt_base\""
+ eval "local act_1=\"\${act_1_$opt_base:-}\""
+ eval "local varname=\"\${varname_$opt_base:-}\""
local need_val=
local func=
case "$act_1" in
@@ -170,6 +180,9 @@ getopts_long() {
eval "varname=\"\${act_3_${opt_base}:-$varname}\""
need_val=1
;;
+ ("")
+ getopts_error --help "Wrong argument: $argument"
+ ;;
esac
if test -n "$need_val" ; then
local val=