summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2015-01-27 01:57:00 +0100
committerAllan McRae <allan@archlinux.org>2015-02-01 12:20:08 +0100
commit33466000d63e88e7a2ac7b1278a5966595fba707 (patch)
treef2c5d8c63ab94f03adc4f0e3d261922d388b94b4 /scripts
parentc8574baa7c35d10114918b9c1379e9d09fef790e (diff)
downloadpacman-33466000d63e88e7a2ac7b1278a5966595fba707.tar.gz
pacman-33466000d63e88e7a2ac7b1278a5966595fba707.tar.xz
makepkg: split PKGBUILD/makepkg.conf option checking to libmakepkg
Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/Makefile.am3
-rw-r--r--scripts/libmakepkg/util/option.sh108
-rw-r--r--scripts/makepkg.sh.in86
3 files changed, 110 insertions, 87 deletions
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 5b61a6d8..1ad8050f 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -44,7 +44,8 @@ LIBMAKEPKGDIRS = \
util
LIBMAKEPKG = \
- libmakepkg/util/message.sh
+ libmakepkg/util/message.sh \
+ libmakepkg/util/option.sh
LIBMAKEPKG_IN = \
libmakepkg/util.sh
diff --git a/scripts/libmakepkg/util/option.sh b/scripts/libmakepkg/util/option.sh
new file mode 100644
index 00000000..fc649288
--- /dev/null
+++ b/scripts/libmakepkg/util/option.sh
@@ -0,0 +1,108 @@
+#!/bin/bash
+#
+# option.sh - functions to test if build/packaging options are enabled
+#
+# Copyright (c) 2009-2015 Pacman Development Team <pacman-dev@archlinux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+[ -n "$LIBMAKEPKG_UTIL_OPTION_SH" ] && return
+LIBMAKEPKG_UTIL_OPTION_SH=1
+
+
+##
+# usage : in_opt_array( $needle, $haystack )
+# return : 0 - enabled
+# 1 - disabled
+# 127 - not found
+##
+in_opt_array() {
+ local needle=$1; shift
+
+ local i opt
+ for (( i = $#; i > 0; i-- )); do
+ opt=${!i}
+ if [[ $opt = "$needle" ]]; then
+ # enabled
+ return 0
+ elif [[ $opt = "!$needle" ]]; then
+ # disabled
+ return 1
+ fi
+ done
+
+ # not found
+ return 127
+}
+
+
+##
+# Checks to see if options are present in makepkg.conf or PKGBUILD;
+# PKGBUILD options always take precedence.
+#
+# usage : check_option( $option, $expected_val )
+# return : 0 - matches expected
+# 1 - does not match expected
+# 127 - not found
+##
+check_option() {
+ in_opt_array "$1" ${options[@]}
+ case $? in
+ 0) # assert enabled
+ [[ $2 = y ]]
+ return ;;
+ 1) # assert disabled
+ [[ $2 = n ]]
+ return
+ esac
+
+ # fall back to makepkg.conf options
+ in_opt_array "$1" ${OPTIONS[@]}
+ case $? in
+ 0) # assert enabled
+ [[ $2 = y ]]
+ return ;;
+ 1) # assert disabled
+ [[ $2 = n ]]
+ return
+ esac
+
+ # not found
+ return 127
+}
+
+
+##
+# Check if option is present in BUILDENV
+#
+# usage : check_buildenv( $option, $expected_val )
+# return : 0 - matches expected
+# 1 - does not match expected
+# 127 - not found
+##
+check_buildenv() {
+ in_opt_array "$1" ${BUILDENV[@]}
+ case $? in
+ 0) # assert enabled
+ [[ $2 = "y" ]]
+ return ;;
+ 1) # assert disabled
+ [[ $2 = "n" ]]
+ return ;;
+ esac
+
+ # not found
+ return 127
+}
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index cf18f9f5..e069f373 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -909,92 +909,6 @@ get_pkg_arch() {
}
##
-# Checks to see if options are present in makepkg.conf or PKGBUILD;
-# PKGBUILD options always take precedence.
-#
-# usage : check_option( $option, $expected_val )
-# return : 0 - matches expected
-# 1 - does not match expected
-# 127 - not found
-##
-check_option() {
- in_opt_array "$1" ${options[@]}
- case $? in
- 0) # assert enabled
- [[ $2 = y ]]
- return ;;
- 1) # assert disabled
- [[ $2 = n ]]
- return
- esac
-
- # fall back to makepkg.conf options
- in_opt_array "$1" ${OPTIONS[@]}
- case $? in
- 0) # assert enabled
- [[ $2 = y ]]
- return ;;
- 1) # assert disabled
- [[ $2 = n ]]
- return
- esac
-
- # not found
- return 127
-}
-
-
-##
-# Check if option is present in BUILDENV
-#
-# usage : check_buildenv( $option, $expected_val )
-# return : 0 - matches expected
-# 1 - does not match expected
-# 127 - not found
-##
-check_buildenv() {
- in_opt_array "$1" ${BUILDENV[@]}
- case $? in
- 0) # assert enabled
- [[ $2 = "y" ]]
- return ;;
- 1) # assert disabled
- [[ $2 = "n" ]]
- return ;;
- esac
-
- # not found
- return 127
-}
-
-
-##
-# usage : in_opt_array( $needle, $haystack )
-# return : 0 - enabled
-# 1 - disabled
-# 127 - not found
-##
-in_opt_array() {
- local needle=$1; shift
-
- local i opt
- for (( i = $#; i > 0; i-- )); do
- opt=${!i}
- if [[ $opt = "$needle" ]]; then
- # enabled
- return 0
- elif [[ $opt = "!$needle" ]]; then
- # disabled
- return 1
- fi
- done
-
- # not found
- return 127
-}
-
-
-##
# usage : in_array( $needle, $haystack )
# return : 0 - found
# 1 - not found