Switch to parseopts. Signed-off-by: Gordian Edenhofer <gordian.edenhofer@gmail.com> --- contrib/pacdiff.sh.in | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/contrib/pacdiff.sh.in b/contrib/pacdiff.sh.in index dff2115..cd93164 100644 --- a/contrib/pacdiff.sh.in +++ b/contrib/pacdiff.sh.in @@ -30,6 +30,7 @@ declare -a oldsaves declare -i USE_FIND=0 USE_LOCATE=0 USE_PACDB=0 OUTPUTONLY=0 m4_include(../scripts/library/output_format.sh) +m4_include(../scripts/library/parseopts.sh) usage() { cat <<EOF @@ -94,7 +95,17 @@ cmd() { fi } -while [[ -n "$1" ]]; do +# Parse arguments +OPT_SHORT='lfpoVh' +OPT_LONG=('locate' 'find' 'pacmandb' 'output' 'nocolor' 'version' 'help') +if ! parseopts "$OPT_SHORT" "${OPT_LONG[@]}" -- "$@"; then + usage + exit 1 +fi +set -- "${OPTRET[@]}" +unset OPT_SHORT OPT_LONG OPTRET + +while :; do case "$1" in -l|--locate) USE_LOCATE=1;; @@ -107,11 +118,14 @@ while [[ -n "$1" ]]; do --nocolor) USE_COLOR='n';; -V|--version) - version; exit 0;; + version + exit 0;; -h|--help) - usage; exit 0;; - *) - usage; exit 1;; + usage + exit 0;; + --) + shift + break 2;; esac shift done -- 2.10.0