Add should_build_for_arch check

This commit is contained in:
Ryan Hughes committed 2025-11-04 11:54:52 -05:00
1 parent dea7849c31
commit fd5fec490c
1 file changed
+39
+39
View File
@@ -74,6 +74,31 @@ get_local_version() {
fi fi
} }
# Check if package should be built for current architecture
# Returns 0 (success) if should build, 1 if should skip
should_build_for_arch() {
local pkg="$1"
local current_arch="$ARCH"
local pkgbuild="/pkgbuilds/$pkg/PKGBUILD"
[[ ! -f "$pkgbuild" ]] && return 1
# Check PKGBUILD arch=() array
local pkgbuild_archs=$(cd "/pkgbuilds/$pkg" && bash -c 'source PKGBUILD 2>/dev/null; echo "${arch[@]}"')
# If arch=('any'), build for all architectures
if [[ "$pkgbuild_archs" == "any" ]]; then
return 0
fi
# Check if current arch is in PKGBUILD arch=()
if echo "$pkgbuild_archs" | grep -qw "$current_arch"; then
return 0 # Build
else
return 1 # Skip
fi
}
# Build a package from /pkgbuilds/ # Build a package from /pkgbuilds/
build_package() { build_package() {
local pkg="$1" local pkg="$1"
@@ -245,6 +270,13 @@ if [[ -n "$PACKAGES" ]]; then
exit 1 exit 1
fi fi
# Check if package should be built for this architecture
if ! should_build_for_arch "$pkg_name"; then
echo " ⊘ $pkg_name - not built for $ARCH"
SKIPPED_PACKAGES="$SKIPPED_PACKAGES $pkg_name"
continue
fi
if check_needs_build "$pkg_name"; then if check_needs_build "$pkg_name"; then
PACKAGES_TO_BUILD+=("$pkg_name") PACKAGES_TO_BUILD+=("$pkg_name")
else else
@@ -259,6 +291,13 @@ else
pkg=$(basename "$pkgdir") pkg=$(basename "$pkgdir")
[[ ! -f "$pkgdir/PKGBUILD" ]] && continue [[ ! -f "$pkgdir/PKGBUILD" ]] && continue
# Check if package should be built for this architecture
if ! should_build_for_arch "$pkg"; then
echo " ⊘ $pkg - not built for $ARCH"
SKIPPED_PACKAGES="$SKIPPED_PACKAGES $pkg"
continue
fi
if check_needs_build "$pkg"; then if check_needs_build "$pkg"; then
PACKAGES_TO_BUILD+=("$pkg") PACKAGES_TO_BUILD+=("$pkg")
else else