diff options
Diffstat (limited to 'devbuild')
-rwxr-xr-x | devbuild | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/devbuild b/devbuild new file mode 100755 index 0000000..4436602 --- /dev/null +++ b/devbuild @@ -0,0 +1,61 @@ +#!/bin/sh + +# This scripts will: +# 1. create a dist package for current subproject +# 2. update the APKBUILD and build the package +# 3. build the alpine iso +# +# The following is assumed from the subproject: +# * that PACKAGE and VERSION is set in Makefile or defined in a local +# devbuild.conf file +# * that 'make dist' will generate a valid dist package +# + +program=${0##*/} + +# rebuild env. Those values can be overridden in either +# /etc/devbuild.conf or $HOME/.devbuild.conf +DISTFILES=/var/cache/distfiles +APORTS_DIR=$HOME/aports +ALPINE_DIR=$HOME/abuild + +# for the local project. Those values can be overridden by +# a devbuild.conf in the subprojects subdir +PACKAGE=$(grep '^PACKAGE' Makefile | sed 's/.*=[[:blank:]]*//') +VERSION=$(grep '^VERSION' Makefile | sed 's/.*=[[:blank:]]*//') +SUFFIX=.tar.bz2 +REPO=core + +# let user override the above defaults +for i in /etc/$program.conf $HOME/.$program.conf ./$program.conf; do + if [ -f $i ]; then + . $i + fi +done + +# generate a new dist package +tarball=${PACKAGE}-${VERSION}${SUFFIX} +make dist || exit 1 +cp $tarball "$DISTFILES/" || exit 1 + +# update the APKBUILD, in a subshell +( + cd $APORTS_DIR/$REPO/$PACKAGE || exit 1 + . ./APKBUILD + if [ "$pkgver" = "$VERSION" ]; then + pkgrel=$(( $pkgrel + 1 )) + else + pkgrel="0" + fi + sed -i -e " s/^pkgver=.*/pkgver=$VERSION/; + s/^pkgrel=.*/pkgrel=$pkgrel/; + /^md5sums=\"/,/\"\$/d" APKBUILD || exit 1 + export SRCDEST="$DISTFILES" + abuild checksum >>APKBUILD + abuild + abuild cleanoldpkg +) || exit 1 + +# rebuild the iso +cd "$ALPINE_DIR" && fakeroot ./mkalpine + |