makepkg: Add helper to test for functions in build script

Signed-off-by: Allan McRae <allan@archlinux.org>
This commit is contained in:
Allan McRae 2013-05-18 23:43:27 +10:00
parent 28dd29dedb
commit 3b4e74cb3b

View file

@ -2095,6 +2095,10 @@ install_package() {
fi fi
} }
have_function() {
declare -f "$1" >/dev/null
}
check_sanity() { check_sanity() {
# check for no-no's in the build script # check for no-no's in the build script
local i local i
@ -2238,7 +2242,7 @@ check_sanity() {
if (( ${#pkgname[@]} > 1 )); then if (( ${#pkgname[@]} > 1 )); then
for i in ${pkgname[@]}; do for i in ${pkgname[@]}; do
if ! declare -f package_${i} >/dev/null; then if ! have_function package_${i}; then
error "$(gettext "Missing %s function for split package '%s'")" "package_$i()" "$i" error "$(gettext "Missing %s function for split package '%s'")" "package_$i()" "$i"
ret=1 ret=1
fi fi
@ -2799,7 +2803,7 @@ if (( GENINTEG )); then
exit 0 # $E_OK exit 0 # $E_OK
fi fi
if declare -f pkgver >/dev/null; then if have_function pkgver; then
PKGVERFUNC=1 PKGVERFUNC=1
fi fi
@ -2814,24 +2818,24 @@ if (( ${#pkgname[@]} > 1 )); then
fi fi
# test for available PKGBUILD functions # test for available PKGBUILD functions
if declare -f prepare >/dev/null; then if have_function prepare; then
# "Hide" prepare() function if not going to be run # "Hide" prepare() function if not going to be run
if [[ $RUN_PREPARE != "n" ]]; then if [[ $RUN_PREPARE != "n" ]]; then
PREPAREFUNC=1 PREPAREFUNC=1
fi fi
fi fi
if declare -f build >/dev/null; then if have_function build; then
BUILDFUNC=1 BUILDFUNC=1
fi fi
if declare -f check >/dev/null; then if have_function check; then
# "Hide" check() function if not going to be run # "Hide" check() function if not going to be run
if [[ $RUN_CHECK = 'y' ]] || { ! check_buildenv "check" "n" && [[ $RUN_CHECK != "n" ]]; }; then if [[ $RUN_CHECK = 'y' ]] || { ! check_buildenv "check" "n" && [[ $RUN_CHECK != "n" ]]; }; then
CHECKFUNC=1 CHECKFUNC=1
fi fi
fi fi
if declare -f package >/dev/null; then if have_function package; then
PKGFUNC=1 PKGFUNC=1
elif [[ $SPLITPKG -eq 0 ]] && declare -f package_${pkgname} >/dev/null; then elif [[ $SPLITPKG -eq 0 ]] && have_function package_${pkgname}; then
SPLITPKG=1 SPLITPKG=1
fi fi