Commit 71efb148 authored by Dan McGee's avatar Dan McGee Committed by Pierre Schmitz
Browse files

commitpkg: make repo/server selection more modular



This gets rid of the ever-expanding conditional we had before and
replaces it with two case statements.

The first handles the command name. If it ends with 'pkg', we treat the
entire first part of the reponame, unless of course 'commitpkg' was
called directly. This allows one to add new symlinks such as
'gnome-unstablepkg'.

The second handles the server. Well-known repositories are listed and
passed to the appropriate server. All unusual repos are assumed to live
on gerolde and sent that direction.

Signed-off-by: default avatarDan McGee <dan@archlinux.org>
Signed-off-by: default avatarPierre Schmitz <pierre@archlinux.de>
parent 48ccc1c7
Loading
Loading
Loading
Loading
+24 −31
Original line number Diff line number Diff line
@@ -51,38 +51,31 @@ 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" == 'stagingpkg' ]; then
	repo='staging'
elif [ "$cmd" == 'communitypkg' ]; then
	repo='community'
	server='aur.archlinux.org'
elif [ "$cmd" == 'community-testingpkg' ]; then
	repo='community-testing'
	server='aur.archlinux.org'
elif [ "$cmd" == 'community-stagingpkg' ]; then
	repo='community-staging'
	server='aur.archlinux.org'
elif [ "$cmd" == 'multilibpkg' ]; then
	repo='multilib'
	server='aur.archlinux.org'
elif [ "$cmd" == 'multilib-testingpkg' ]; then
	repo='multilib-testing'
	server='aur.archlinux.org'
else
case "$cmd" in
	commitpkg)
		if [ $# -eq 0 ]; then
			abort 'usage: commitpkg <reponame> [-l limit] [commit message]'
		fi
		repo="$1"
		shift
fi
		;;
	*pkg)
		repo="${cmd%pkg}"
		;;
	*)
		abort 'usage: commitpkg <reponame> [-l limit] [commit message]'
		;;
esac

case "$repo" in
	core|extra|testing|staging)
		server='gerolde.archlinux.org' ;;
	community*|multilib*)
		server='aur.archlinux.org' ;;
	*)
		server='gerolde.archlinux.org'
		echo "Non-standard repository $repo in use, defaulting to server $server" ;;
esac

# check if all local source files are under version control
for s in ${source[@]}; do