summaryrefslogtreecommitdiffstats
path: root/scripts/makepkg.sh.in
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2011-06-08 15:36:46 +0200
committerDan McGee <dan@archlinux.org>2011-06-15 16:16:38 +0200
commit6f3a2145b0de7f27a1bf5932af3fe0a67171a881 (patch)
tree675413c6ba4b2ecdfc7aea7c6b0c053c6b52f843 /scripts/makepkg.sh.in
parent5f404f2cb78f48ddd90be0334fa2528961b17871 (diff)
downloadpacman-6f3a2145b0de7f27a1bf5932af3fe0a67171a881.tar.gz
pacman-6f3a2145b0de7f27a1bf5932af3fe0a67171a881.tar.xz
makepkg: move option parsing code to separate file
This move the getopt replacement function parse_options out of makepkg.sh.in and into a separate file. The code is inserted into the relevant place in makepkg using m4. This will allow the reuse of the option parsing code in other scripts (i.e. pacman-key) while avoiding code duplication. Signed-off-by: Allan McRae <allan@archlinux.org> Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'scripts/makepkg.sh.in')
-rw-r--r--scripts/makepkg.sh.in88
1 files changed, 1 insertions, 87 deletions
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index 9e0a667d..5de10718 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1589,93 +1589,7 @@ canonicalize_path() {
fi
}
-# 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
- if [[ ${1:2} = $match ]]; then
- printf ' %s' "$1"
- else
- if [[ -n $2 ]]; then
- printf ' %s' "$1"
- shift
- printf " '%s'" "$1"
- else
- echo "makepkg: option '$1' $(gettext "requires an argument")" >&2
- ret=1
- fi
- fi
- else
- echo "makepkg: $(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
- if [[ $short_options =~ ${1:i:1}: ]]; then
- if [[ -n ${1:$i+1} ]]; then
- printf ' -%s' "${1:i:1}"
- printf " '%s'" "${1:$i+1}"
- else
- if [[ -n $2 ]]; then
- printf ' -%s' "${1:i:1}"
- shift
- printf " '%s'" "${1}"
- else
- echo "makepkg: option $(gettext "requires an argument") -- '${1:i:1}'" >&2
- ret=1
- fi
- fi
- break
- else
- printf ' -%s' "${1:i:1}"
- fi
- else
- echo "makepkg: $(gettext "invalid option") -- '${1:i:1}'" >&2
- ret=1
- fi
- done
- else
- unused_options="${unused_options} '$1'"
- fi
- shift
- done
-
- printf " --"
- if [[ -n $unused_options ]]; then
- for i in ${unused_options[@]}; do
- printf ' %s' "$i"
- done
- fi
- if [[ -n $1 ]]; then
- while [[ -n $1 ]]; do
- printf " '%s'" "${1}"
- shift
- done
- fi
- printf "\n"
-
- return $ret
-}
+m4_include(library/parse_options.sh)
usage() {
printf "makepkg (pacman) %s\n" "$myver"