#!/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 pkgbase=${pkgbase:-${pkgname[0]}} for _pkgname in ${pkgname[@]}; do pkgfile=${_pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT} anypkgfile=${_pkgname}-${pkgver}-${pkgrel}-any${PKGEXT} if [ ! -f $pkgfile ]; then if [ -f $PKGDEST/$pkgfile ]; then pkgfile=$PKGDEST/$pkgfile elif [ -f $anypkgfile ]; then pkgfile=$anypkgfile CARCH=any elif [ -f $PKGDEST/$anypkgfile ]; then pkgfile=$PKGDEST/$anypkgfile CARCH=any else echo "File $pkgfile doesn't exist" exit 1 fi fi # set up repo-specific opts depending on how we were called server="gerolde.archlinux.org" if [ "$cmd" == "extrapkg" ]; then repo="extra" elif [ "$cmd" == "corepkg" ]; then repo="core" elif [ "$cmd" == "testingpkg" ]; then repo="testing" elif [ "$cmd" == "communitypkg" ]; then repo="community" server="aur.archlinux.org" elif [ "$cmd" == "community-testingpkg" ]; then repo="community-testing" server="aur.archlinux.org" else if [ $# -eq 0 ]; then echo "usage: commitpkg [-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 # combine what we know into a variable uploadto="staging/${repo}/$(basename ${pkgfile})" 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 if [ $? -ne 0 ]; then echo "Cancelled" exit 1 fi echo "===> Uploaded $pkgfile" done if [ "$1" != "" ]; then svn commit -m "upgpkg: $pkgbase $pkgver-$pkgrel $1" > /dev/null if [ $? -ne 0 ]; then echo "Cancelled" exit 1 fi echo "===> Commited with \"upgpkg: $pkgbase $pkgver-$pkgrel $1\" message" else svn commit if [ $? -ne 0 ]; then echo "Cancelled" exit 1 fi echo "===> Commited" 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: