diff options
author | Aaron Griffin <aaronmgriffin@gmail.com> | 2009-03-03 09:00:56 -0800 |
---|---|---|
committer | Aaron Griffin <aaronmgriffin@gmail.com> | 2009-03-03 09:00:56 -0800 |
commit | d4dbb527dcb20e987dec75ddcc6db595f71ea1b2 (patch) | |
tree | 76d3910763916b76ce113edf6ec91685a0eb6b50 /commitpkg | |
parent | bf48e3ad8f23df3a6888243432faf291235622f6 (diff) |
Rename extrapkg to commitpkg
Also allow for uploads to any user-specified repo name
Signed-off-by: Aaron Griffin <aaronmgriffin@gmail.com>
Diffstat (limited to 'commitpkg')
-rwxr-xr-x | commitpkg | 126 |
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: |