#!/bin/bash abort() { echo ${1:-'Cancelled'} exit 1 } # Source makepkg.conf; fail if it is not found if [ -r '/etc/makepkg.conf' ]; then source '/etc/makepkg.conf' else abort '/etc/makepkg.conf not found!' fi # Source user-specific makepkg.conf overrides if [ -r ~/.makepkg.conf ]; then . ~/.makepkg.conf fi cmd=$(basename "$0") if [ ! -f PKGBUILD ]; then abort 'No PKGBUILD file' fi . PKGBUILD pkgbase=${pkgbase:-$pkgname} # 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 abort 'usage: commitpkg [-l limit] [commit message]' fi repo="$1" shift fi # check if all local source files are under version control (for s in ${source[@]} $install; do echo $s | grep -vq '://' && \ svn status $s | grep -q '?' && \ abort "$s is not under version control" done) || true # see if any limit options were passed, we'll send them to rsync unset rsyncopts if [ "$1" = '-l' ]; then rsyncopts="--bwlimit=$2" shift 2 fi echo -n 'committing changes to trunk...' if [ -n "$1" ]; then svn commit -q -m "upgpkg: $pkgbase $pkgver-$pkgrel $1" || abort else svn commit -q || abort fi echo 'done' for _arch in ${arch[@]}; do for _pkgname in ${pkgname[@]}; do pkgfile=$_pkgname-$pkgver-$pkgrel-${_arch}$PKGEXT if [ ! -f $pkgfile -a -f "$PKGDEST/$pkgfile" ]; then pkgfile="$PKGDEST/$pkgfile" elif [ ! -f $pkgfile ]; then echo "skipping ${_arch}" continue 2 fi echo -n 'uploading ' rsync -c -h -L --progress $rsyncopts "${pkgfile}" -e ssh $server:staging/$repo || abort done archrelease $repo-${_arch} || abort done if [ "${arch[*]}" == 'any' ]; then if [ -d ../repos/$repo-i686 -a -d ../repos/$repo-x86_64 ]; then pushd ../repos/ >/dev/null echo -n "removing $repo-i686 and $repo-x86_64..." svn rm $repo-i686 svn rm $repo-x86_64 svn commit -q -m "removed $repo-i686 and $repo-x86_64 for $pkgname" echo 'done' popd >/dev/null fi fi # vim: set noexpandtab tabstop=8 shiftwidth=8 wrap:textwidth=132 autoindent # kate: indent-mode normal; indent-width 8; tab-indents on; tab-width 8; word-wrap on; word-wrap-column 132