scripts/library: remove parse_options

This is retired, as the two consumers of this function are now using the
new parseopts instead.

Signed-off-by: Dave Reisner <dreisner@archlinux.org>
This commit is contained in:
Dave Reisner 2012-04-08 15:12:27 -04:00 committed by Dan McGee
parent e07a2ab45e
commit 00ab01e634
4 changed files with 1 additions and 114 deletions

View file

@ -27,8 +27,7 @@ EXTRA_DIST = \
LIBRARY = \ LIBRARY = \
library/output_format.sh \ library/output_format.sh \
library/parseopts.sh \ library/parseopts.sh
library/parse_options.sh
# Files that should be removed, but which Automake does not know. # Files that should be removed, but which Automake does not know.
MOSTLYCLEANFILES = $(bin_SCRIPTS) MOSTLYCLEANFILES = $(bin_SCRIPTS)

View file

@ -8,12 +8,6 @@ and can be silenced by defining 'QUIET'. The 'warning' and 'error'
functions print to stderr with the appropriate prefix added to the functions print to stderr with the appropriate prefix added to the
message. message.
parse_options.sh:
A getopt replacement to avoids portability issues, in particular the
lack of long option name support in the default getopt provided by some
platforms.
Usage: parse_option $SHORT_OPTS $LONG_OPTS "$@"
parseopts.sh: parseopts.sh:
A getopt_long-like parser which portably supports longopts and shortopts A getopt_long-like parser which portably supports longopts and shortopts
with some GNU extensions. It does not allow for options with optional with some GNU extensions. It does not allow for options with optional

View file

@ -1,105 +0,0 @@
# getopt like parser
parse_options() {
local short_options=$1; shift;
local long_options=$1; shift;
local ret=0;
local unused_options=""
local i
while [[ -n $1 ]]; do
if [[ ${1:0:2} = '--' ]]; then
if [[ -n ${1:2} ]]; then
local match=""
for i in ${long_options//,/ }; do
if [[ ${1:2} = ${i//:} ]]; then
match=$i
break
fi
done
if [[ -n $match ]]; then
local needsargument=0
[[ ${match} = ${1:2}: ]] && needsargument=1
[[ ${match} = ${1:2}:: && -n $2 && ${2:0:1} != "-" ]] && needsargument=1
if (( ! needsargument )); then
printf ' %s' "$1"
else
if [[ -n $2 ]]; then
printf ' %s ' "$1"
shift
printf "'%q" "$1"
while [[ -n $2 && ${2:0:1} != "-" ]]; do
shift
printf " %q" "$1"
done
printf "'"
else
printf "@SCRIPTNAME@: $(gettext "option %s requires an argument\n")" "'$1'" >&2
ret=1
fi
fi
else
echo "@SCRIPTNAME@: $(gettext "unrecognized option") '$1'" >&2
ret=1
fi
else
shift
break
fi
elif [[ ${1:0:1} = '-' ]]; then
for ((i=1; i<${#1}; i++)); do
if [[ $short_options =~ ${1:i:1} ]]; then
local needsargument=0
[[ $short_options =~ ${1:i:1}: && ! $short_options =~ ${1:i:1}:: ]] && needsargument=1
[[ $short_options =~ ${1:i:1}:: && \
( -n ${1:$i+1} || ( -n $2 && ${2:0:1} != "-" ) ) ]] && needsargument=1
if (( ! needsargument )); then
printf ' -%s' "${1:i:1}"
else
if [[ -n ${1:$i+1} ]]; then
printf ' -%s ' "${1:i:1}"
printf "'%q" "${1:$i+1}"
while [[ -n $2 && ${2:0:1} != "-" ]]; do
shift
printf " %q" "$1"
done
printf "'"
else
if [[ -n $2 ]]; then
printf ' -%s ' "${1:i:1}"
shift
printf "'%q" "$1"
while [[ -n $2 && ${2:0:1} != "-" ]]; do
shift
printf " %q" "$1"
done
printf "'"
else
printf "@SCRIPTNAME@: $(gettext "option %s requires an argument\n")" "'-${1:i:1}'" >&2
ret=1
fi
fi
break
fi
else
echo "@SCRIPTNAME@: $(gettext "unrecognized option") '-${1:i:1}'" >&2
ret=1
fi
done
else
unused_options="${unused_options} '$1'"
fi
shift
done
printf " --"
[[ $unused_options ]] && printf ' %s' "${unused_options[@]}"
[[ $1 ]] && printf " '%s'" "$@"
printf "\n"
return $ret
}

View file

@ -8,5 +8,4 @@ scripts/pacman-optimize.sh.in
scripts/pkgdelta.sh.in scripts/pkgdelta.sh.in
scripts/repo-add.sh.in scripts/repo-add.sh.in
scripts/library/output_format.sh scripts/library/output_format.sh
scripts/library/parse_options.sh
scripts/library/parseopts.sh scripts/library/parseopts.sh