85 lines
2 KiB
Bash
Executable file
85 lines
2 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
toplevel=`pwd`
|
|
version="2.2"
|
|
|
|
usage() {
|
|
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 directory names under the ABS root"
|
|
echo " eg: makeworld -c /packages base lib editors"
|
|
echo
|
|
echo " this should be run from the toplevel directory of ABS (usually /usr/abs)"
|
|
}
|
|
|
|
if [ $# -lt 2 -o "$1" = "--help" -o "$1" = "-h" ]; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
MAKEPKG_OPTS=
|
|
for arg in $*; do
|
|
case $arg in
|
|
-c|--clean)
|
|
MAKEPKG_OPTS="$MAKEPKG_OPTS -c"
|
|
;;
|
|
-i|--install)
|
|
MAKEPKG_OPTS="$MAKEPKG_OPTS -i"
|
|
;;
|
|
*)
|
|
dest=$arg
|
|
shift
|
|
break
|
|
;;
|
|
esac
|
|
shift
|
|
if [ "$dest" != "" ]; then
|
|
break;
|
|
fi
|
|
done
|
|
|
|
if [ "$dest" = "" ]; then
|
|
usage
|
|
exit 1
|
|
fi
|
|
|
|
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
|
|
|