#!/bin/bash if [ $# -ne 3 ]; then echo "usage: $(basename $0) " exit 1 fi . "$(dirname $0)/db-functions" source_makepkg packagename="$1" reponame="$2" arch="$3" export CARCH="$arch" ##### Arch specific stuff. TODO make this configurable ##### ftppath="/home/ftp/$reponame/os/$arch/" svnpath="file:///home/svn-packages" svnrepo="$reponame-$arch" ############################################################ [ "$UID" = "" ] && UID=$(uid) WORKDIR="/tmp/db-remove.$svnrepo.$UID" cleanup() { # unlock repo_unlock $reponame $arch rm -rf "$WORKDIR" [ "$1" ] && exit $1 } ctrl_c() { echo "Interrupted" >&2 cleanup 0 } die() { echo "$*" >&2 cleanup 1 } trap ctrl_c 2 trap cleanup 0 1 repo_lock $reponame $arch /bin/mkdir -p "$WORKDIR" echo "==> Removing package '$packagename' from '$reponame'..." >&2 cd "$WORKDIR" /usr/bin/svn checkout -N $svnpath checkout cd checkout /usr/bin/svn up -q $packagename if [ -d "$packagename/repos/$svnrepo" ]; then echo " Removing from subversion" /usr/bin/svn rm --force -q "$packagename/repos/$svnrepo" /usr/bin/svn commit -q -m "$(basename $0): $packagename removed by $(id -un)" fi cd "$WORKDIR" [ -d build/ ] || mkdir build # copy the db file into our working area if [ -f "$ftppath/$reponame.db.tar.$DB_COMPRESSION" ]; then cp "$ftppath/$reponame.db.tar.$DB_COMPRESSION" build/ else echo "No database found at '$ftpdir', nothing more to do" exit 0 fi echo " Removing from $reponame DB file" cd build/ /usr/bin/repo-remove "$reponame.db.tar.$DB_COMPRESSION" $packagename cp "$reponame.db.tar.$DB_COMPRESSION" "$ftppath/" echo "Package files will be cleaned up automatically" cleanup # vim: set ts=4 sw=4 noet ft=sh: