summaryrefslogtreecommitdiffstats
path: root/scripts/makeworld
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/makeworld')
-rwxr-xr-xscripts/makeworld68
1 files changed, 68 insertions, 0 deletions
diff --git a/scripts/makeworld b/scripts/makeworld
new file mode 100755
index 00000000..8b3ec177
--- /dev/null
+++ b/scripts/makeworld
@@ -0,0 +1,68 @@
+#!/bin/bash
+
+toplevel=`pwd`
+version="2.0"
+
+if [ $# -lt 2 -o "$1" = "--help" -o "$1" = "-h" ]; then
+ echo "makeworld version $version"
+ echo "usage: $0 [options] <destdir> <category> [category] ..."
+ echo "options:"
+ echo " -c, --clean Clean up work files after build"
+ echo " -i, --install Install package after successful build"
+ echo " -h, --help This help"
+ echo
+ echo " where <category> is one or more of base, opt, contrib"
+ echo " eg: makeworld /packages base opt"
+ echo
+ echo " this should be run from the toplevel directory of ABS (usually /usr/abs)"
+ exit 1
+fi
+
+MAKEPKG_OPTS=
+if [ "$1" = "-c" -o "$1" = "--clean" ]; then
+ shift
+ MAKEPKG_OPTS="$MAKEPKG_OPTS -c"
+fi
+if [ "$1" = "-i" -o "$1" = "--install" ]; then
+ shift
+ MAKEPKG_OPTS="$MAKEPKG_OPTS -i"
+fi
+
+dest=$1
+shift
+
+sd=`date +"[%b %d %H:%M]"`
+
+for category in $*; do
+ for port in `find $toplevel/$category -type d -maxdepth 1 -mindepth 1 | sort`; do
+ cd $port
+ if [ -f PKGBUILD ]; then
+ . PKGBUILD
+ buildstatus=0
+ if [ ! -f $dest/$pkgname-$pkgver-$pkgrel.pkg.tar.gz ]; then
+ makepkg $MAKEPKG_OPTS 2>>$toplevel/makepkg.log
+ if [ $? -gt 0 ]; then
+ buildstatus=2
+ else
+ rm -rf pkg src
+ # some packages (mozilla) have been split into multiple packages
+ mv -v $pkgname-*.pkg.tar.gz $dest/
+ buildstatus=1
+ fi
+ fi
+ d=`date +"[%b %d %H:%M]"`
+ echo -n "$d " >>$toplevel/build.log
+ case $buildstatus in
+ 0) echo "$pkgname already built -- skipping" >>$toplevel/build.log ;;
+ 1) echo "$pkgname was built successfully" >>$toplevel/build.log ;;
+ 2) echo "$pkgname build failed" >>$toplevel/build.log ;;
+ esac
+ fi
+ done
+done
+ed=`date +"[%b %d %H:%M]"`
+
+echo "makeworld complete." >>$toplevel/build.log
+echo " started: $sd" >>$toplevel/build.log
+echo " finished: $ed" >>$toplevel/build.log
+