On 01/06/18 02:24, Jan Alexander Steffens (heftig) wrote:
> Pull out the expected=y/n check into a separate function and make use of
> the fact we can just concatenate the fallback arrays to get the same
> result.
> ---

Breaks using options=(!strip) in a PKGBUILD.

>  scripts/libmakepkg/util/option.sh.in | 85 +++++++++-------------------
>  1 file changed, 28 insertions(+), 57 deletions(-)
> 
> diff --git a/scripts/libmakepkg/util/option.sh.in 
> b/scripts/libmakepkg/util/option.sh.in
> index 46e0568d..28357e27 100644
> --- a/scripts/libmakepkg/util/option.sh.in
> +++ b/scripts/libmakepkg/util/option.sh.in
> @@ -48,95 +48,66 @@ in_opt_array() {
>  }
>  
>  
> +##
> +#  usage : check_opt_array( $option, $expected_val, $haystack )
> +# return : 0   - matches expected
> +#          1   - does not match expected
> +#          127 - not found
> +##
> +check_opt_array() {
> +     local option=$1 expected=$2; shift 2
> +
> +     in_opt_array "$option" "$@"
> +     case $? in
> +             0) # assert enabled
> +                     [[ $expected = y ]]
> +                     return ;;
> +             1) # assert disabled
> +                     [[ $expected = n ]]
> +                     return ;;
> +     esac
> +
> +     # 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_opt_array "$@" "${options[@]}" "${OPTIONS[@]}"

These need switched.

>  }
>  
>  
>  ##
>  # 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
> +     check_opt_array "$@" "${BUILDENV[@]}"
>  }
>  
> +
>  ##
>  # Checks to see if options are present in BUILDENV or PKGBUILD;
>  # PKGBUILD options always take precedence.
>  #
>  #  usage : check_buildoption( $option, $expected_val )
>  # return : 0   - matches expected
>  #          1   - does not match expected
>  #          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 "$@" "${options[@]}" "${BUILDENV[@]}"

These need switched.

>  }
> 

Reply via email to