[arch-projects] [PATCH] [dbscripts 1/2] db-*: always handle pkgname/pkgbase/pkgfile argument last
This matches what we do in db-update, and makes the most sense if we want to expand these commands to take multiple arguments at the same time. Especially in the case of db-repo-add and db-repo-remove, these wrapper commands should be no more limiting than repo-add and repo-remove which always allow multiple arguments and are more efficient that way. This patch simply reorders the arguments; a later patch will support multiple pkgname/pkgbase/pkgfile arguments on the command line. Although this does break backwards compatibility and requires some changing of muscle memory, I think it is a worthwhile change to make as the functionality of these commands becomes more powerful and the order of arguments becomes the same in all of them. Signed-off-by: Dan McGee <dan@archlinux.org> --- db-remove | 8 ++++---- db-repo-add | 8 ++++---- db-repo-remove | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/db-remove b/db-remove index b44eb33..e7326c0 100755 --- a/db-remove +++ b/db-remove @@ -4,13 +4,13 @@ . "$(dirname $0)/config" if [ $# -ne 3 ]; then - msg "usage: $(basename $0) <pkgname|pkgbase> <repo> <arch>" + msg "usage: $(basename $0) <repo> <arch> <pkgname|pkgbase>" exit 1 fi -pkgbase="$1" -repo="$2" -arch="$3" +repo="$1" +arch="$2" +pkgbase="$3" ftppath="$FTP_BASE/$repo/os" svnrepo="$repo-$arch" diff --git a/db-repo-add b/db-repo-add index 53cfc84..8d4a56d 100755 --- a/db-repo-add +++ b/db-repo-add @@ -4,13 +4,13 @@ . "$(dirname $0)/config" if [ $# -ne 3 ]; then - msg "usage: $(basename $0) <pkgfile> <repo> <arch>" + msg "usage: $(basename $0) <repo> <arch> <pkgfile>" exit 1 fi -pkgfile="$1" -repo="$2" -arch="$3" +repo="$1" +arch="$2" +pkgfile="$3" ftppath="$FTP_BASE/$repo/os" diff --git a/db-repo-remove b/db-repo-remove index b01910f..e55cd07 100755 --- a/db-repo-remove +++ b/db-repo-remove @@ -4,13 +4,13 @@ . "$(dirname $0)/config" if [ $# -ne 3 ]; then - msg "usage: $(basename $0) <pkgname> <repo> <arch>" + msg "usage: $(basename $0) <repo> <arch> <pkgname>" exit 1 fi -pkgname="$1" -repo="$2" -arch="$3" +repo="$1" +arch="$2" +pkgname="$3" ftppath="$FTP_BASE/$repo/os" -- 1.7.7.1
This allows invoking these commands for more than one package at a time which is incredibly more efficient as the database doesn't need to be locked, unpacked, modified, changed, and unlocked for every single passed package name or file if you have more than one. Signed-off-by: Dan McGee <dan@archlinux.org> --- db-remove | 4 ++-- db-repo-add | 20 +++++++++++--------- db-repo-remove | 13 +++++++------ 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/db-remove b/db-remove index e7326c0..7e2282a 100755 --- a/db-remove +++ b/db-remove @@ -3,8 +3,8 @@ . "$(dirname $0)/db-functions" . "$(dirname $0)/config" -if [ $# -ne 3 ]; then - msg "usage: $(basename $0) <repo> <arch> <pkgname|pkgbase>" +if [ $# -lt 3 ]; then + msg "usage: $(basename $0) <repo> <arch> <pkgname|pkgbase> ..." exit 1 fi diff --git a/db-repo-add b/db-repo-add index 8d4a56d..9661b91 100755 --- a/db-repo-add +++ b/db-repo-add @@ -3,14 +3,14 @@ . "$(dirname $0)/db-functions" . "$(dirname $0)/config" -if [ $# -ne 3 ]; then - msg "usage: $(basename $0) <repo> <arch> <pkgfile>" +if [ $# -lt 3 ]; then + msg "usage: $(basename $0) <repo> <arch> <pkgfile> ..." exit 1 fi repo="$1" arch="$2" -pkgfile="$3" +pkgfiles=(${@:3}) ftppath="$FTP_BASE/$repo/os" @@ -28,12 +28,14 @@ for tarch in ${tarches[@]}; do repo_lock $repo $tarch || exit 1 done -msg "Adding $pkgfile to [$repo]..." - for tarch in ${tarches[@]}; do - if [ ! -f "${pkgfile}" ]; then - die "Package file ${pkgfile} not found" - fi - arch_repo_add "${repo}" "${tarch}" ${pkgfile} + for pkgfile in ${pkgfiles[@]}; do + if [[ ! -f $pkgfile ]]; then + die "Package file $pkgfile not found" + else + msg "Adding $pkgfile to [$repo]..." + fi + done + arch_repo_add "${repo}" "${tarch}" ${pkgfiles[@]} repo_unlock $repo $tarch done diff --git a/db-repo-remove b/db-repo-remove index e55cd07..4f04ed1 100755 --- a/db-repo-remove +++ b/db-repo-remove @@ -3,14 +3,14 @@ . "$(dirname $0)/db-functions" . "$(dirname $0)/config" -if [ $# -ne 3 ]; then - msg "usage: $(basename $0) <repo> <arch> <pkgname>" +if [ $# -lt 3 ]; then + msg "usage: $(basename $0) <repo> <arch> <pkgname> ..." exit 1 fi repo="$1" arch="$2" -pkgname="$3" +pkgnames=(${@:3}) ftppath="$FTP_BASE/$repo/os" @@ -28,9 +28,10 @@ for tarch in ${tarches[@]}; do repo_lock $repo $tarch || exit 1 done -msg "Removing $pkgname from [$repo]..." - for tarch in ${tarches[@]}; do - arch_repo_remove "${repo}" "${tarch}" ${pkgname} + for pkgname in ${pkgnames[@]}; do + msg "Removing $pkgname from [$repo]..." + done + arch_repo_remove "${repo}" "${tarch}" ${pkgnames[@]} repo_unlock $repo $tarch done -- 1.7.7.1
participants (1)
-
Dan McGee