From 4e83abaae51c82ce6571450fb3ed9e2e71175b68 Mon Sep 17 00:00:00 2001 From: "Jan Alexander Steffens (heftig)" Date: Tue, 19 Jun 2018 22:33:56 +0200 Subject: libmakepkg/util/option: Refactor checking to reduce code duplication Pull out the expected=y/n check into a separate function and make use of the fact we can just prepend the fallback arrays to get the same result. Signed-off-by: Allan McRae --- scripts/libmakepkg/util/option.sh.in | 77 +++++++++++------------------------- 1 file changed, 24 insertions(+), 53 deletions(-) (limited to 'scripts/libmakepkg/util') diff --git a/scripts/libmakepkg/util/option.sh.in b/scripts/libmakepkg/util/option.sh.in index 46e0568d..3299df9c 100644 --- a/scripts/libmakepkg/util/option.sh.in +++ b/scripts/libmakepkg/util/option.sh.in @@ -49,34 +49,22 @@ in_opt_array() { ## -# Checks to see if options are present in makepkg.conf or PKGBUILD; -# PKGBUILD options always take precedence. -# -# usage : check_option( $option, $expected_val ) +# usage : check_opt_array( $option, $expected_val, $haystack ) # 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 +check_opt_array() { + local option=$1 expected=$2; shift 2 - # fall back to makepkg.conf options - in_opt_array "$1" ${OPTIONS[@]} + in_opt_array "$option" "$@" case $? in 0) # assert enabled - [[ $2 = y ]] + [[ $expected = y ]] return ;; 1) # assert disabled - [[ $2 = n ]] - return + [[ $expected = n ]] + return ;; esac # not found @@ -84,6 +72,20 @@ check_option() { } +## +# 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() { + check_opt_array "$@" "${OPTIONS[@]}" "${options[@]}" +} + + ## # Check if option is present in BUILDENV # @@ -93,20 +95,10 @@ check_option() { # 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 + check_opt_array "$@" "${BUILDENV[@]}" } + ## # Checks to see if options are present in BUILDENV or PKGBUILD; # PKGBUILD options always take precedence. @@ -117,26 +109,5 @@ check_buildenv() { # 127 - not found ## check_buildoption() { - in_opt_array "$1" ${options[@]} - case $? in - 0) # assert enabled - [[ $2 = y ]] - return ;; - 1) # assert disabled - [[ $2 = n ]] - return - esac - - in_opt_array "$1" ${BUILDENV[@]} - case $? in - 0) # assert enabled - [[ $2 = y ]] - return ;; - 1) # assert disabled - [[ $2 = n ]] - return - esac - - # not found - return 127 + check_opt_array "$@" "${BUILDENV[@]}" "${options[@]}" } -- cgit v1.2.3-70-g09d2