rootdir=$(pwd -P) distclean () { echo "Removing traces of previous builds from $rootdir" local allpkgs=$(find $rootdir -maxdepth 3 -name APKBUILD -print | sed -e 's/\/APKBUILD//g' | sort) for p in $allpkgs ; do cd $p pwd abuild clean 2>&1 abuild cleanoldpkg 2>&1 abuild cleanpkg 2>&1 abuild cleancache 2>&1 done } build () { local pkgs local maintainer local pkgno local failed pkgs=$($rootdir/aport.lua deplist $rootdir $1) pktcnt=$(echo $pkgs | wc -w) pkgno=0 failed=0 for p in $pkgs ; do pkgno=$(expr "$pkgno" + 1) echo "Building $p ($pkgno of $pktcnt in $1 - $failed failed)" cd $rootdir/$1/$p abuild -rm > $rootdir/$1_$p.txt 2>&1 if [ "$?" = "0" ] ; then rm $rootdir/$1_$p.txt else maintainer=$(grep Maintainer APKBUILD | cut -d " " -f 3-) if [ -z "$maintainer" ] ; then maintainer="default maintainer" fi echo "Package $1/$p failed to build (output in $rootdir/$1_$p.txt)" # echo "Package $1/$p failed to build. Notify $maintainer. Output is attached" | email -s "NOT SPAM $p build report" -a $rootdir/$1_$p.txt -n AlpineBuildBot -f build@alpinelinux.org amanison@anselsystems.com failed=$(expr "$failed" + 1) fi done cd $rootdir } touch START_OF_BUILD.txt if [ "$1" = "clean" ] ; then echo "Invoked with 'clean' option. This will take a while ..." tmp=$(distclean) echo "Done" fi echo "Refresh aports tree" git pull #cd main/build-base #abuild -Ru #cd $rootdir for s in main testing unstable ; do echo "Building packages in $s" build $s done touch END_OF_BUILD.txt echo "Done"