From 19b5663b9ef06a800831d09a3cbceb937923429d Mon Sep 17 00:00:00 2001 From: Mike Burns Date: Fri, 30 May 2014 14:17:32 +0200 Subject: On bad args, show usage and exit The lsrc(1), mkrc(1), rcup(1), and rcdn(1) commands will now print a usage message and exit immediately (with 64, `EX_USAGE`) when given an option it does not understand. This includes `--version` and `--help`. Normal `-h` will print usage and exit successfully, as normal. Closes #59. --- bin/lsrc.in | 3 ++- bin/mkrc.in | 5 +++-- bin/rcdn.in | 3 ++- bin/rcup.in | 3 ++- 4 files changed, 9 insertions(+), 5 deletions(-) (limited to 'bin') diff --git a/bin/lsrc.in b/bin/lsrc.in index 951f3df..ec900a2 100755 --- a/bin/lsrc.in +++ b/bin/lsrc.in @@ -229,7 +229,7 @@ handle_command_line() { local symlink_dirs= local hostname= - while getopts FVqvhI:x:B:S:t:d: opt; do + while getopts :FVqvhI:x:B:S:t:d: opt; do case "$opt" in F) show_sigils=1;; h) show_help ;; @@ -242,6 +242,7 @@ handle_command_line() { x) excludes="$excludes $OPTARG";; S) symlink_dirs="$symlink_dirs $OPTARG";; B) hostname="$OPTARG";; + ?) show_help 64 ;; esac done shift $(($OPTIND-1)) diff --git a/bin/mkrc.in b/bin/mkrc.in index 9af0b6a..6545e55 100755 --- a/bin/mkrc.in +++ b/bin/mkrc.in @@ -30,7 +30,7 @@ show_help() { } if [ $# -eq 0 ]; then - show_help 1 + show_help 64 fi for DOTFILES_DIR in $DOTFILES_DIRS $DEFAULT_DOTFILES_DIR; do @@ -46,7 +46,7 @@ always_copy=0 force_symlink=0 install_args= -while getopts ChSsVvqot:d:B: opt; do +while getopts :ChSsVvqot:d:B: opt; do case "$opt" in C) always_copy=1 ;; h) show_help ;; @@ -63,6 +63,7 @@ while getopts ChSsVvqot:d:B: opt; do hostname="$OPTARG" install_args="-B $hostname" ;; + ?) show_help 64 ;; esac done shift $(($OPTIND-1)) diff --git a/bin/rcdn.in b/bin/rcdn.in index 0393f4d..1179b97 100755 --- a/bin/rcdn.in +++ b/bin/rcdn.in @@ -39,7 +39,7 @@ handle_command_line() { local symlink_dirs= local hostname= - while getopts VqvhI:x:S:t:d:B: opt; do + while getopts :VqvhI:x:S:t:d:B: opt; do case "$opt" in h) show_help ;; B) hostname="$OPTARG" ;; @@ -53,6 +53,7 @@ handle_command_line() { d) dotfiles_dirs="$dotfiles_dirs $OPTARG" ;; V) version=1 ;; x) excludes="$excludes $OPTARG" ;; + ?) show_help 64 ;; esac done shift $(($OPTIND-1)) diff --git a/bin/rcup.in b/bin/rcup.in index 17516b6..24d7177 100755 --- a/bin/rcup.in +++ b/bin/rcup.in @@ -107,7 +107,7 @@ handle_command_line() { local hostname= REPLACE_ALL=0 - while getopts CVqvfhikKI:x:S:t:d:B: opt; do + while getopts :CVqvfhikKI:x:S:t:d:B: opt; do case "$opt" in B) hostname="$OPTARG" ;; C) always_copy=1 ;; @@ -124,6 +124,7 @@ handle_command_line() { v) verbosity=$(($verbosity + 1)) ;; V) version=1 ;; x) excludes="$excludes $OPTARG" ;; + ?) show_help 64 ;; esac done shift $(($OPTIND-1)) -- cgit v1.2.3