summaryrefslogtreecommitdiff
path: root/db-update
diff options
context:
space:
mode:
Diffstat (limited to 'db-update')
-rwxr-xr-xdb-update24
1 files changed, 18 insertions, 6 deletions
diff --git a/db-update b/db-update
index ced673e..9a52e01 100755
--- a/db-update
+++ b/db-update
@@ -11,11 +11,18 @@ if [ $# -ge 1 ]; then
fi
# Find repos with packages to release
-repos=($(find "${STAGING}" -mindepth 1 -maxdepth 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 %s" "${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
@@ -37,14 +44,19 @@ for repo in "${repos[@]}"; do
if ! check_pkgfile "${pkg}"; then
die "Package %s is not consistent with its meta data" "${repo}/${pkg##*/}"
fi
+ if "${REQUIRE_SIGNATURE}" && ! pacman-key -v "${pkg}.sig" >/dev/null 2>&1; then
+ die "Package %s does not have a valid signature" "${repo}/${pkg##*/}"
+ fi
+ if ! check_pkgxbs "${pkg}" "${repo}"; then
+ die "Package %s is not consistent with XBS" "${repo}/${pkg##*/}"
+ fi
if ! check_pkgrepos "${pkg}"; then
die "Package %s already exists in another repository" "${repo}/${pkg##*/}"
fi
done
- # This is fucking obnoxious
- #if ! check_splitpkgs ${repo} "${pkgs[@]}"; then
- # die "Missing split packages for %s" "${repo}"
- #fi
+ if ! check_splitpkgs "${repo}" "${pkgs[@]}"; then
+ die "Missing split packages for %s" "${repo}"
+ fi
else
die "Could not read %s" "${STAGING}"
fi
@@ -58,7 +70,7 @@ for repo in "${repos[@]}"; do
arch_pkgs=($(getpkgfiles "${STAGING}/${repo}/"*-"${pkgarch}"${PKGEXT} 2>/dev/null))
for pkg in "${arch_pkgs[@]}" "${any_pkgs[@]}"; do
pkgfile="${pkg##*/}"
- msg2 '%s (%s)' "${pkgfile}" "${pkgarch}"
+ msg2 "%s (%s)" "${pkgfile}" "${pkgarch}"
# any packages might have been moved by the previous run
if [ -f "${pkg}" ]; then
mv "${pkg}" "$FTP_BASE/${PKGPOOL}"