summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Schmitz <pierre@archlinux.de>2013-01-31 23:24:07 +0100
committerPierre Schmitz <pierre@archlinux.de>2013-01-31 23:24:07 +0100
commit0992cc36f525898ff07032d0ee697ecb62fedc07 (patch)
treed7397e2b875075104aeb1bbfdd75f0cf326cc027
parentc2ad0298b74877bb2cd85f8f0e899460714bb019 (diff)
db-update: Ignore forgeign staging packagesarchlinux/2013013120130131
-rwxr-xr-xdb-update9
-rwxr-xr-xtest/test.d/db-update.sh10
2 files changed, 18 insertions, 1 deletions
diff --git a/db-update b/db-update
index caddbe6..576fe2b 100755
--- a/db-update
+++ b/db-update
@@ -9,11 +9,18 @@ if [ $# -ge 1 ]; then
fi
# Find repos with packages to release
-repos=($(find "${STAGING}" -mindepth 1 -type d ! -empty -printf '%f ' 2>/dev/null))
+staging_repos=($(find "${STAGING}" -mindepth 1 -type f -name "*${PKGEXT}" -printf '%h\n' | sort -u))
if [ $? -ge 1 ]; then
die "Could not read ${STAGING}"
fi
+repos=()
+for staging_repo in ${staging_repos[@]##*/}; do
+ if in_array ${staging_repo} ${PKGREPOS[@]}; then
+ repos+=(${staging_repo})
+ fi
+done
+
# TODO: this might lock too much (architectures)
for repo in ${repos[@]}; do
for pkgarch in ${ARCHES[@]}; do
diff --git a/test/test.d/db-update.sh b/test/test.d/db-update.sh
index ea1e130..7a5ce4c 100755
--- a/test/test.d/db-update.sh
+++ b/test/test.d/db-update.sh
@@ -162,4 +162,14 @@ testAddIncompleteSplitPackage() {
done
}
+testUnknownRepo() {
+ mkdir "${STAGING}/unknown/"
+ releasePackage extra 'pkg-simple-a' 'i686'
+ releasePackage unknown 'pkg-simple-b' 'i686'
+ ../db-update
+ checkPackage extra 'pkg-simple-a-1-1-i686.pkg.tar.xz' 'i686'
+ [ -e "${FTP_BASE}/unknown" ] && fail "db-update pushed a package into an unknown repository"
+ rm -rf "${STAGING}/unknown/"
+}
+
. "${curdir}/../lib/shunit2"