This reduces code duplication a bit. It also highlights how these
options are checked.

Signed-off-by: Jan Alexander Steffens (heftig) <jan.steff...@gmail.com>
---
 scripts/libmakepkg/util/option.sh | 22 ++++++++++++++++++++++
 scripts/makepkg.sh.in             |  8 ++++----
 2 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/scripts/libmakepkg/util/option.sh 
b/scripts/libmakepkg/util/option.sh
index 1b2d94d..1266e05 100644
--- a/scripts/libmakepkg/util/option.sh
+++ b/scripts/libmakepkg/util/option.sh
@@ -106,3 +106,25 @@ check_buildenv() {
        # not found
        return 127
 }
+
+##
+# Check if option is present in BUILDENV and not inverted in options
+#
+#  usage : check_buildoption( $option, $expected_val )
+# return : 0   - matches expected
+#          1   - does not match expected
+#          127 - not found
+##
+check_buildoption() {
+       case "$2" in
+               y) # assert enabled
+                       check_buildenv "$1" "y" && ! check_option "$1" "n"
+                       return ;;
+               n) # assert disabled
+                       check_buildenv "$1" "n" && ! check_option "$1" "y"
+                       return ;;
+       esac
+
+       # not found
+       return 127
+}
diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index ec8218f..a8bac02 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -857,13 +857,13 @@ run_prepare() {
 
 run_build() {
        # use distcc if it is requested (check buildenv and PKGBUILD opts)
-       if check_buildenv "distcc" "y" && ! check_option "distcc" "n"; then
+       if check_buildoption "distcc" "y"; then
                [[ -d /usr/lib/distcc/bin ]] && export 
PATH="/usr/lib/distcc/bin:$PATH"
                export DISTCC_HOSTS
        fi
 
        # use ccache if it is requested (check buildenv and PKGBUILD opts)
-       if check_buildenv "ccache" "y" && ! check_option "ccache" "n"; then
+       if check_buildoption "ccache" "y"; then
                [[ -d /usr/lib/ccache/bin ]] && export 
PATH="/usr/lib/ccache/bin:$PATH"
        fi
 
@@ -1562,7 +1562,7 @@ check_software() {
        fi
 
        # distcc - compilation with distcc
-       if check_buildenv "distcc" "y" && ! check_option "distcc" "n"; then
+       if check_buildoption "distcc" "y"; then
                if ! type -p distcc >/dev/null; then
                        error "$(gettext "Cannot find the %s binary required 
for distributed compilation.")" "distcc"
                        ret=1
@@ -1570,7 +1570,7 @@ check_software() {
        fi
 
        # ccache - compilation with ccache
-       if check_buildenv "ccache" "y" && ! check_option "ccache" "n"; then
+       if check_buildoption "ccache" "y"; then
                if ! type -p ccache >/dev/null; then
                        error "$(gettext "Cannot find the %s binary required 
for compiler cache usage.")" "ccache"
                        ret=1
-- 
2.5.2

Reply via email to