[pacman-dev] [RFC v3 01/13] pacdiff: proper option handling
Gordian Edenhofer
gordian.edenhofer at gmail.com
Fri Sep 30 11:47:49 UTC 2016
Switch to parseopts.
Signed-off-by: Gordian Edenhofer <gordian.edenhofer at 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
More information about the pacman-dev
mailing list