#!/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 source PKGBUILD pkgbase=${pkgbase:-${pkgname[0]}} # 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 for CARCH in ${arch[@]}; do echo "===> Uploading to $repo-$CARCH" for _pkgname in ${pkgname[@]}; do pkgfile=${_pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT} if [ ! -f $pkgfile -a -f $PKGDEST/$pkgfile ]; then pkgfile=$PKGDEST/$pkgfile elif [ ! -f $pkgfile ]; then echo "File $pkgfile doesn't exist" # skip to next architecture continue 2 fi # combine what we know into a variable uploadto="staging/${repo}/$(basename ${pkgfile})" # don't re-upload the same package (useful for -any sub packages) if [ "$(md5sum "${pkgfile}" | cut -d' ' -f1)" != "$(ssh ${server} md5sum "${uploadto}" | cut -d' ' -f1)" ]; then scp ${scpopts} "${pkgfile}" "${server}:${uploadto}" fi 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 message: upgpkg: $pkgbase $pkgver-$pkgrel $1" 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" done if [ "${arch[*]}" == "any" ]; then if [ -d ../repos/${repo}-i686 -a -d ../repos/${repo}-x86_64 ]; then pushd .. svn rm $repo-i686 svn rm $repo-x86_64 svn commit -m "removed $repo-i686 and $repo-x86_64 for $pkgname" popd fi fi # vim:ft=sh:ts=4:sw=4:et: