[pacman-dev] [PATCH 2/3] makepkg: split PKGBUILD/makepkg.conf option checking to libmakepkg
Allan McRae
allan at archlinux.org
Tue Jan 27 01:52:40 UTC 2015
Signed-off-by: Allan McRae <allan at archlinux.org>
---
scripts/Makefile.am | 3 +-
scripts/libmakepkg/util/option.sh | 108 ++++++++++++++++++++++++++++++++++++++
scripts/makepkg.sh.in | 86 ------------------------------
3 files changed, 110 insertions(+), 87 deletions(-)
create mode 100644 scripts/libmakepkg/util/option.sh
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index 5b61a6d..1ad8050 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 0000000..fc64928
--- /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 at 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 cf18f9f..e069f37 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
--
2.2.2
More information about the pacman-dev
mailing list