summaryrefslogtreecommitdiff
path: root/commitpkg
diff options
context:
space:
mode:
Diffstat (limited to 'commitpkg')
-rwxr-xr-xcommitpkg126
1 files changed, 126 insertions, 0 deletions
diff --git a/commitpkg b/commitpkg
new file mode 100755
index 0000000..c434974
--- /dev/null
+++ b/commitpkg
@@ -0,0 +1,126 @@
+#!/bin/bash
+
+# Source makepkg.conf; fail if it is not found
+if [ -r "/etc/makepkg.conf" ]; then
+ source "/etc/makepkg.conf"
+else
+ echo "/etc/makepkg.conf not found!"
+ exit 1
+fi
+
+# Source user-specific makepkg.conf overrides
+if [ -r ~/.makepkg.conf ]; then
+ source ~/.makepkg.conf
+fi
+
+cmd=`basename $0`
+
+if [ ! -f PKGBUILD ]; then
+ echo "No PKGBUILD file"
+ exit 1
+fi
+
+if [ -z "$CARCH" ]; then
+ echo "CARCH must be set to a recognized value!"
+ exit 1
+fi
+
+source PKGBUILD
+pkgfile=${pkgname}-${pkgver}-${pkgrel}-${CARCH}.pkg.tar.gz
+oldstylepkgfile=${pkgname}-${pkgver}-${pkgrel}.pkg.tar.gz
+
+if [ ! -f $pkgfile ]; then
+ if [ -f $PKGDEST/$pkgfile ]; then
+ pkgfile=$PKGDEST/$pkgfile
+ oldstylepkgfile=$PKGDEST/$oldstylepkgfile
+ elif [ -f $oldstylepkgfile ]; then
+ pkgfile=$oldstylepkgfile
+ elif [ -f $PKGDEST/$oldstylepkgfile ]; then
+ pkgfile=$PKGDEST/$oldstylepkgfile
+ else
+ echo "File $pkgfile doesn't exist"
+ exit 1
+ fi
+fi
+
+if [ "$cmd" == "extrapkg" ]; then
+ repo="extra"
+elif [ "$cmd" == "corepkg" ]; then
+ repo="core"
+elif [ "$cmd" == "testingpkg" ]; then
+ repo="testing"
+elif [ "$cmd" == "unstablepkg" ]; then
+ repo="unstable"
+elif [ "$cmd" == "communitypkg" ]; then
+ repo="community"
+else
+ if [ $# -eq 0 ]; then
+ echo "usage: commitpkg <reponame> [-l limit] [commit message]"
+ exit 1
+ fi
+ repo="$1"
+ shift
+fi
+
+# see if any limit options were passed, we'll send them to SCP
+unset scpopts
+if [ "$1" = "-l" ]; then
+ scpopts="$1 $2"
+ shift 2
+fi
+
+if [ "$repo" != "community" ]; then
+ # combine what we know into a variable
+ uploadto="staging/${repo}/$(basename ${pkgfile})"
+ server="archlinux.org"
+ scp ${scpopts} "${pkgfile}" "${server}:${uploadto}"
+ if [ "$(md5sum "${pkgfile}" | cut -d' ' -f1)" != "$(ssh ${server} md5sum "${uploadto}" | cut -d' ' -f1)" ]; then
+ echo "File got corrupted during upload, cancelled."
+ exit 1
+ else
+ echo "File integrity okay."
+ fi
+else
+ if [ ! -f ~/.tupkg ]; then
+ echo "Must configure tupkg via ~/.tupkg, cancelled"
+ exit 1
+ fi
+ if [ "$(basename $pkgfile)" != "$(basename $oldstylepkgfile)" ]; then
+ echo "Renaming makepkg3 package for compatibility"
+ mv $pkgfile $oldstylepkgfile
+ pkgfile=$oldstylepkgfile
+ fi
+ tupkg $pkgfile
+fi
+if [ $? -ne 0 ]; then
+ echo "Cancelled"
+ exit 1
+fi
+echo "===> Uploaded $pkgfile"
+
+if [ "$1" != "" ]; then
+ svn commit -m "upgpkg: $pkgname $pkgver-$pkgrel
+ $1" > /dev/null
+ if [ $? -ne 0 ]; then
+ echo "Cancelled"
+ exit 1
+ fi
+ echo "===> Commited with \"upgpkg: $pkgname $pkgver-$pkgrel
+ $1\" message"
+else
+ svn commit -m "upgpkg: $pkgname $pkgver-$pkgrel" > /dev/null
+ if [ $? -ne 0 ]; then
+ echo "Cancelled"
+ exit 1
+ fi
+ echo "===> Commited with \"upgpkg: $pkgname $pkgver-$pkgrel\" message"
+fi
+
+archrelease $repo-$CARCH
+if [ $? -ne 0 ]; then
+ echo "Cancelled"
+ exit 1
+fi
+echo "===> Tagged for $repo-$CARCH"
+
+# vim:ft=sh:ts=4:sw=4:et: