summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2011-04-01 23:35:31 +0200
committerPierre Schmitz <pierre@archlinux.de>2011-04-02 00:26:33 +0200
commit71efb148df6505c4fbf50cc80886cd805d296396 (patch)
tree485b3812420f21da6485c5d917a83bb3df438b59
parent48ccc1c7fb5a6f212d999bbd0de80710eb1169b1 (diff)
downloaddevtools-71efb148df6505c4fbf50cc80886cd805d296396.tar.gz
devtools-71efb148df6505c4fbf50cc80886cd805d296396.tar.xz
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: Dan McGee <dan@archlinux.org> Signed-off-by: Pierre Schmitz <pierre@archlinux.de>
-rwxr-xr-xcommitpkg55
1 files changed, 24 insertions, 31 deletions
diff --git a/commitpkg b/commitpkg
index dfc2bd1..009c777 100755
--- a/commitpkg
+++ b/commitpkg
@@ -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
- if [ $# -eq 0 ]; then
+case "$cmd" in
+ commitpkg)
+ if [ $# -eq 0 ]; then
+ abort 'usage: commitpkg <reponame> [-l limit] [commit message]'
+ fi
+ repo="$1"
+ shift
+ ;;
+ *pkg)
+ repo="${cmd%pkg}"
+ ;;
+ *)
abort 'usage: commitpkg <reponame> [-l limit] [commit message]'
- fi
- repo="$1"
- shift
-fi
+ ;;
+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