diff options
Diffstat (limited to 'fullpkg')
-rwxr-xr-x | fullpkg | 41 |
1 files changed, 36 insertions, 5 deletions
@@ -11,7 +11,9 @@ tmp_dir=$(mktemp -d /tmp/$(basename $PWD).XXXXXX) queue_file=$(mktemp /tmp/queue.XXXXXX) +ban_file=$(mktemp) [[ ! -w $queue_file ]] && exit 1 +[[ ! -w $ban_file ]] && exit 1 source /etc/makepkg.conf source /etc/abs.conf @@ -77,6 +79,18 @@ check_queue() { return 0 } +# Checks if the package is banned from building +is_banned() { + rsync -e ssh -aq $PARABOLAHOST:mips64el/ban $ban_file >/dev/null 2>&1 || { + echo ":: Failed to get ban list" + return 0 + } + + grep -w $1 $ban_file >/dev/null 2>&1 + + return $? +} + # TODO keep track of spawned fullpkgs quit() { @@ -86,10 +100,21 @@ quit() { } source PKGBUILD -msg "Building ${pkgbase} ${pkgname[@]}" +msg ":: Building ${pkgbase:-${pkgname[@]}}" + +# is_built doesn't support version checking +#is_built ${pkgbase:-${pkgname[0]}}=${pkgver} && exit 0 +is_built ${pkgbase:-${pkgname[0]}} && exit 0 + +#sudo pacman -Sy trap "quit" SIGTERM SIGKILL +if is_banned ${pkgbase:-$pkgname}; then + echo "This package is banned from building. Check the ban list" + exit 1 +fi + check_queue || exit 1 failed=() @@ -113,15 +138,21 @@ deps=$(echo "${depends[@]} ${makedepends[@]} ${pkgdeps[@]}" | \ msg "Checking dependencies" plain "${deps[@]}" -msg "Syncing database" -sudo pacman -Sy +#msg "Syncing database" +#sudo pacman -Sy for _dep in ${deps[@]}; do is_built $_dep && continue + is_banned $_dep && continue for _repo in ${REPOS[@]}; do # TODO find split packages [[ -e "$ABSROOT/${_repo}/$_dep/PKGBUILD" ]] && { +# source "$ABSROOT/${_repo}/$_dep/PKGBUILD" + +# If this version is built, continue with the next dep +# is_built $_dep=$pkgver && continue 2 + cp -r "$ABSROOT/$_repo/$_dep" $tmp_dir/ || { error "Can't copy $_dep to the work dir." exit 1 @@ -173,12 +204,12 @@ pushd $tmp_dir/$(basename $PWD) >/dev/null msg "Syncing database" sudo pacman -Sy - -makepkg --noconfirm -sLcr ; r=$? +makepkg --noconfirm -sLcr $@ ; r=$? case $r in 0) msg "The build was succesful." mipsrelease *.pkg.tar.* + sudo pacman -Sy ;; 1) error "There were errors while trying to build the package." |