summaryrefslogtreecommitdiff
path: root/abuild.in
diff options
context:
space:
mode:
authorCarlo Landmeter <clandmeter@gmail.com>2013-01-08 00:40:53 +0100
committerCarlo Landmeter <clandmeter@gmail.com>2013-01-08 00:45:53 +0100
commit3ac1b1294ac5881215add450ea5f346d9d234023 (patch)
treee76a0ea155d4d21c425ddf5bbfd4030660021e2a /abuild.in
parenta00d100c2de7e7abb4d1baa022959562243f3301 (diff)
downloadabuild-3ac1b1294ac5881215add450ea5f346d9d234023.tar.gz
abuild-3ac1b1294ac5881215add450ea5f346d9d234023.tar.bz2
abuild-3ac1b1294ac5881215add450ea5f346d9d234023.tar.xz
abuild-3ac1b1294ac5881215add450ea5f346d9d234023.zip
abuild: add git/svn snapshot hook
ref #1537
Diffstat (limited to 'abuild.in')
-rwxr-xr-xabuild.in57
1 files changed, 57 insertions, 0 deletions
diff --git a/abuild.in b/abuild.in
index 7658c03..437c3a5 100755
--- a/abuild.in
+++ b/abuild.in
@@ -1651,6 +1651,62 @@ all() {
fi
}
+# This abuild hook will checkout an svn or git repository by specifying
+# $svnurl or $giturl in APKBUILD. You can checkout a specific branch in
+# git by adding -b $branch in $giturl. $reporev will select the correct
+# commit, revision or tag for you. If you specify $disturl your distfile
+# will automatically be uploaded with rsync to the url provided.
+# Base version defaults to 0 except if specified by $basever.
+
+snapshot() {
+ # check if we setup vars correctly
+ [ -z "$disturl" ] && warning "Missing disturl in APKBUILD, auto uploading disabled."
+ [ -z "$svnurl" ] && [ -z "$giturl" ] && die "Missding repository url in APKBUILD!"
+ [ -n "$svnurl" ] && [ -n "$giturl" ] && die "You can only use a single repository!"
+ local _date=$(date +%Y%m%d)
+ local _format="tar.gz"
+ # remove any repositories left in srcdir
+ abuild clean
+ mkdir -p "$srcdir" && cd "$srcdir"
+ # clone git repo and archive
+ if [ -n "$giturl" ]; then
+ local _version=${verbase:-0}_git${_date}
+ command -v git >/dev/null || \
+ die "Missing git! Install git to support git clone."
+ [ -z "$reporev" ] && local _rev="HEAD" && local _depth="--depth=1"
+ msg "Creating git snapshot: $pkgname-$_version"
+ git clone $_depth --bare $giturl $pkgname-$_version || return 1
+ git --git-dir $pkgname-$_version archive \
+ --format=$_format \
+ -o $pkgname-$_version.$_format \
+ --prefix=$pkgname-$_version/ $_rev \
+ || return 1
+ fi
+ # export svn repo and archive
+ if [ -n "$svnurl" ]; then
+ local _version=${verbase:-0}_svn${_date}
+ command -v svn >/dev/null || \
+ die "Missing svn! Install subverion to support svn export."
+ [ -n "$reporev" ] && local _rev="-r $reporev"
+ msg "Creating svn snapshot: $pkgname-$_version"
+ svn export $_rev $svnurl $pkgname-$_version || return 1
+ tar zcf $pkgname-$_version.$_format $pkgname-$_version || return 1
+ fi
+ # upload to defined distfiles url
+ if [ -n "$disturl" ]; then
+ command -v rsync >/dev/null || \
+ die "Missing rsync! Install rsync to enable automatic uploads."
+ msg "Uploading to $disturl"
+ rsync --progress -La $pkgname-$_version.$_format \
+ $disturl || return 1
+ cd "$startdir"
+ # set the pkgver to current date and update checksum
+ sed -i -e "s/^pkgver=.*/pkgver=${_version}/" \
+ APKBUILD || return 1
+ abuild checksum
+ fi
+}
+
usage() {
echo "$program $abuild_ver"
echo "usage: $program [options] [-i PKG] [-P REPODEST] [-p PKGDEST]"
@@ -1692,6 +1748,7 @@ usage() {
echo " up2date Compare target and sources dates"
echo " installdeps Install packages listed in makedepends and depends"
echo " uninstalldeps Uninstall packages listed in makedepends and depends"
+ echo " snapshot Create a \$giturl or \$svnurl snapshot and upload to \$disturl"
echo ""
exit 0
}