diff options
Diffstat (limited to 'rebuild-alpine.sh')
-rwxr-xr-x | rebuild-alpine.sh | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/rebuild-alpine.sh b/rebuild-alpine.sh new file mode 100755 index 000000000..5f975dd15 --- /dev/null +++ b/rebuild-alpine.sh @@ -0,0 +1,68 @@ +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" + |