pkgdelta: adopt parseopts for option parsing

Signed-off-by: Dave Reisner <dreisner@archlinux.org>
Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Dave Reisner 2012-04-25 22:00:00 -04:00 committed by Dan McGee
parent 9d9c12e4e2
commit ceb2362209
2 changed files with 26 additions and 15 deletions

View file

@ -83,7 +83,8 @@ pacman-optimize: \
pkgdelta: \ pkgdelta: \
$(srcdir)/pkgdelta.sh.in \ $(srcdir)/pkgdelta.sh.in \
$(srcdir)/library/output_format.sh $(srcdir)/library/output_format.sh \
$(srcdir)/library/parseopts.sh
repo-add: \ repo-add: \
$(srcdir)/repo-add.sh.in \ $(srcdir)/repo-add.sh.in \

View file

@ -40,6 +40,7 @@ max_delta_size=70
# ensure we have a sane umask set # ensure we have a sane umask set
umask 0022 umask 0022
m4_include(library/parseopts.sh)
m4_include(library/output_format.sh) m4_include(library/output_format.sh)
# print usage instructions # print usage instructions
@ -155,22 +156,32 @@ create_xdelta()
return 0 return 0
} }
declare -a args OPT_SHORT='hqV'
OPT_LONG=('help' 'quiet' 'max-delta-size:' 'min-pkg-size:')
if ! parseopts "$OPT_SHORT" "${OPT_LONG[@]}" -- "$@"; then
exit 1
fi
set -- "${OPTRET[@]}"
unset OPT_SHORT OPT_LONG OPTRET
# parse arguments # parse arguments
while (( $# )); do while :; do
case "$1" in case $1 in
-h|--help) usage; exit 0 ;; -h|--help)
-V|--version) version; exit 0 ;; usage
-q|--quiet) QUIET=1;; exit 0 ;;
-V|--version)
version
exit 0 ;;
-q|--quiet)
QUIET=1;;
--min-pkg-size) --min-pkg-size)
if ! isnumeric "$2"; then if ! isnumeric "$2"; then
echo "invalid argument '$2' for option -- '$1'" echo "invalid argument '$2' for option -- '$1'"
exit 1 exit 1
fi fi
min_pkg_size=$2 min_pkg_size=$2
shift shift ;;
;;
--max-delta-size) --max-delta-size)
arg=$(echo "$2" | awk '{print $1 * 100}') arg=$(echo "$2" | awk '{print $1 * 100}')
if ! isnumeric "$arg" || (($arg > 200)); then if ! isnumeric "$arg" || (($arg > 200)); then
@ -178,21 +189,20 @@ while (( $# )); do
exit 1 exit 1
fi fi
max_delta_size=$arg max_delta_size=$arg
shift ;;
--)
shift shift
;; break 2 ;;
--) shift; args+=("$@"); break 2 ;;
-*) echo "invalid option -- '$1'"; usage; exit 1 ;;
*) args+=("$1");;
esac esac
shift shift
done done
if (( ${#args[@]} != 2 )); then if (( $# != 2 )); then
usage usage
exit 1 exit 1
fi fi
for i in "${args[@]}"; do for i in "$@"; do
if [[ ! -f $i ]]; then if [[ ! -f $i ]]; then
error "$(gettext "File '%s' does not exist")" "$i" error "$(gettext "File '%s' does not exist")" "$i"
exit 1 exit 1