[arch-projects] [dbscripts] [PATCH v2 3/8] config: Rename PKGEXT to PKGEXT_glob
Luke Shumaker
lukeshu at lukeshu.com
Sun Feb 18 17:17:31 UTC 2018
From: Luke Shumaker <lukeshu at parabola.nu>
Unlike the other *EXT variables, which are prescriptive, PKGEXT is
descriptive, and is a glob (this has always been the case). This is
confusing because of the other variables, and because it is used
prescriptively in makepkg.conf.
Simply put, the configuration variable name PKGEXT is overloaded.
Let's rename the glob version, to make things clearer.
Now, in test/lib/common.bash, there *are* 2 places where it is used
prescriptively. How does that work!? The value has a glob character in
it! Well, because of sloppy quoting, it just kind of works out. So, in
those places, *don't* rename it to PKGEXT_glob, but introduce a local
PKGEXT variable with a prescriptive value.
In db-update.bats, there's a place where it was set to .pkg.tar.gz both
descriptively and prescriptively; so set both PKGEXT and PKGEXT_glob in
that case.
---
config | 4 +++-
cron-jobs/ftpdir-cleanup | 6 +++---
db-functions | 4 ++--
db-move | 4 ++--
db-update | 8 ++++----
test/cases/db-repo-add.bats | 6 +++---
test/cases/db-update.bats | 4 ++--
test/cases/ftpdir-cleanup.bats | 4 ++--
test/lib/common.bash | 8 +++++---
9 files changed, 26 insertions(+), 22 deletions(-)
diff --git a/config b/config
index d2c1942..13fe202 100644
--- a/config
+++ b/config
@@ -23,10 +23,12 @@ LOCK_TIMEOUT=300
STAGING="$HOME/staging"
TMPDIR="/var/tmp"
ARCHES=(x86_64)
+# prescriptive
DBEXT=".db.tar.gz"
FILESEXT=".files.tar.gz"
-PKGEXT=".pkg.tar.?z"
SRCEXT=".src.tar.gz"
+# descriptive; bash glob listing allowed extensions.
+PKGEXT_glob=".pkg.tar.?z"
# Allowed licenses: get sourceballs only for licenses in this array
ALLOWED_LICENSES=('GPL' 'GPL1' 'GPL2' 'GPL3' 'LGPL' 'LGPL1' 'LGPL2' 'LGPL2.1' 'LGPL3')
diff --git a/cron-jobs/ftpdir-cleanup b/cron-jobs/ftpdir-cleanup
index 2f3d5aa..4dc02a0 100755
--- a/cron-jobs/ftpdir-cleanup
+++ b/cron-jobs/ftpdir-cleanup
@@ -38,7 +38,7 @@ for repo in ${PKGREPOS[@]}; do
continue
fi
# get a list of actual available package files
- find "${FTP_BASE}/${repo}/os/${arch}" -xtype f -name "*${PKGEXT}" -printf '%f\n' | sort > "${WORKDIR}/repo-${repo}-${arch}"
+ find "${FTP_BASE}/${repo}/os/${arch}" -xtype f -name "*${PKGEXT_glob}" -printf '%f\n' | sort > "${WORKDIR}/repo-${repo}-${arch}"
# get a list of package files defined in the repo db
bsdtar -xOf "${FTP_BASE}/${repo}/os/${arch}/${repo}${DBEXT}" | awk '/^%FILENAME%/{getline;print}' | sort > "${WORKDIR}/db-${repo}-${arch}"
@@ -62,7 +62,7 @@ for repo in ${PKGREPOS[@]}; do
done
# get a list of all available packages in the pacakge pool
-find "$FTP_BASE/${PKGPOOL}" -name "*${PKGEXT}" -printf '%f\n' | sort > "${WORKDIR}/pool"
+find "$FTP_BASE/${PKGPOOL}" -name "*${PKGEXT_glob}" -printf '%f\n' | sort > "${WORKDIR}/pool"
# create a list of packages in our db
find "${WORKDIR}" -maxdepth 1 -type f -name 'db-*' -exec cat {} \; | sort -u > "${WORKDIR}/db"
@@ -75,7 +75,7 @@ if [ ${#old_pkgs[@]} -ge 1 ]; then
done
fi
-old_pkgs=($(find ${CLEANUP_DESTDIR} -type f -name "*${PKGEXT}" -mtime +${CLEANUP_KEEP} -printf '%f\n'))
+old_pkgs=($(find ${CLEANUP_DESTDIR} -type f -name "*${PKGEXT_glob}" -mtime +${CLEANUP_KEEP} -printf '%f\n'))
if [ ${#old_pkgs[@]} -ge 1 ]; then
msg "Removing old packages from the cleanup directory..."
for old_pkg in ${old_pkgs[@]}; do
diff --git a/db-functions b/db-functions
index e8949d7..84be241 100644
--- a/db-functions
+++ b/db-functions
@@ -374,8 +374,8 @@ check_pkgrepos() {
local pkgver="$(getpkgver ${pkgfile})" || return 1
local pkgarch="$(getpkgarch ${pkgfile})" || return 1
- [[ -f ${FTP_BASE}/${PKGPOOL}/${pkgname}-${pkgver}-${pkgarch}${PKGEXT} ]] && return 1
- [[ -f ${FTP_BASE}/${PKGPOOL}/${pkgname}-${pkgver}-${pkgarch}${PKGEXT}.sig ]] && return 1
+ [[ -f ${FTP_BASE}/${PKGPOOL}/${pkgname}-${pkgver}-${pkgarch}${PKGEXT_glob} ]] && return 1
+ [[ -f ${FTP_BASE}/${PKGPOOL}/${pkgname}-${pkgver}-${pkgarch}${PKGEXT_glob}.sig ]] && return 1
[[ -f ${FTP_BASE}/${PKGPOOL}/${pkgfile##*/} ]] && return 1
[[ -f ${FTP_BASE}/${PKGPOOL}/${pkgfile##*/}.sig ]] && return 1
diff --git a/db-move b/db-move
index 37a9884..e3bc16e 100755
--- a/db-move
+++ b/db-move
@@ -49,7 +49,7 @@ for pkgbase in ${args[@]:2}; do
for pkgname in ${pkgnames[@]}; do
for tarch in ${tarches[@]}; do
- getpkgfile "${ftppath_from}/${tarch}/"${pkgname}-${pkgver}-${pkgarch}${PKGEXT} >/dev/null
+ getpkgfile "${ftppath_from}/${tarch}/"${pkgname}-${pkgver}-${pkgarch}${PKGEXT_glob} >/dev/null
done
done
continue 2
@@ -95,7 +95,7 @@ for pkgbase in ${args[@]:2}; do
for pkgname in ${pkgnames[@]}; do
for tarch in ${tarches[@]}; do
- pkgpath=$(getpkgfile "${ftppath_from}/${tarch}/"${pkgname}-${pkgver}-${pkgarch}${PKGEXT})
+ pkgpath=$(getpkgfile "${ftppath_from}/${tarch}/"${pkgname}-${pkgver}-${pkgarch}${PKGEXT_glob})
pkgfile="${pkgpath##*/}"
ln -s "../../../${PKGPOOL}/${pkgfile}" ${ftppath_to}/${tarch}/
diff --git a/db-update b/db-update
index 45755a4..4afeb6e 100755
--- a/db-update
+++ b/db-update
@@ -9,7 +9,7 @@ if (( $# >= 1 )); then
fi
# Find repos with packages to release
-if ! staging_repos=($(find "${STAGING}" -mindepth 1 -type f -name "*${PKGEXT}" -printf '%h\n' | sort -u)); then
+if ! staging_repos=($(find "${STAGING}" -mindepth 1 -type f -name "*${PKGEXT_glob}" -printf '%h\n' | sort -u)); then
die "Could not read %s" "$STAGING"
fi
@@ -32,7 +32,7 @@ for repo in ${repos[@]}; do
if ! check_repo_permission "${repo}"; then
die "You don't have permission to update packages in %s" "$repo"
fi
- pkgs=($(getpkgfiles "${STAGING}/${repo}/"*${PKGEXT}))
+ pkgs=($(getpkgfiles "${STAGING}/${repo}/"*${PKGEXT_glob}))
if (( $? == 0 )); then
for pkg in ${pkgs[@]}; do
if [[ -h ${pkg} ]]; then
@@ -70,10 +70,10 @@ done
for repo in ${repos[@]}; do
msg "Updating [%s]..." "$repo"
- any_pkgs=($(getpkgfiles "${STAGING}/${repo}/"*-any${PKGEXT} 2>/dev/null))
+ any_pkgs=($(getpkgfiles "${STAGING}/${repo}/"*-any${PKGEXT_glob} 2>/dev/null))
for pkgarch in ${ARCHES[@]}; do
add_pkgs=()
- arch_pkgs=($(getpkgfiles "${STAGING}/${repo}/"*-${pkgarch}${PKGEXT} 2>/dev/null))
+ arch_pkgs=($(getpkgfiles "${STAGING}/${repo}/"*-${pkgarch}${PKGEXT_glob} 2>/dev/null))
for pkg in ${arch_pkgs[@]} ${any_pkgs[@]}; do
pkgfile="${pkg##*/}"
msg2 "${pkgfile} (${pkgarch})"
diff --git a/test/cases/db-repo-add.bats b/test/cases/db-repo-add.bats
index 9fde381..ace7452 100644
--- a/test/cases/db-repo-add.bats
+++ b/test/cases/db-repo-add.bats
@@ -14,10 +14,10 @@ __movePackageToRepo() {
fi
# FIXME: pkgbase might not be part of the package filename
- mv -v "${STAGING}"/${repo}/${pkgbase}-*-*-${arch}${PKGEXT}{,.sig} "${FTP_BASE}/${PKGPOOL}/"
+ mv -v "${STAGING}"/${repo}/${pkgbase}-*-*-${arch}${PKGEXT_glob}{,.sig} "${FTP_BASE}/${PKGPOOL}/"
for tarch in ${tarches[@]}; do
- ln -sv ${FTP_BASE}/${PKGPOOL}/${pkgbase}-*-*-${arch}${PKGEXT} "${FTP_BASE}/${repo}/os/${tarch}/"
- ln -sv ${FTP_BASE}/${PKGPOOL}/${pkgbase}-*-*-${arch}${PKGEXT}.sig "${FTP_BASE}/${repo}/os/${tarch}/"
+ ln -sv ${FTP_BASE}/${PKGPOOL}/${pkgbase}-*-*-${arch}${PKGEXT_glob} "${FTP_BASE}/${repo}/os/${tarch}/"
+ ln -sv ${FTP_BASE}/${PKGPOOL}/${pkgbase}-*-*-${arch}${PKGEXT_glob}.sig "${FTP_BASE}/${repo}/os/${tarch}/"
done
}
diff --git a/test/cases/db-update.bats b/test/cases/db-update.bats
index 36511c9..c1b8eb4 100644
--- a/test/cases/db-update.bats
+++ b/test/cases/db-update.bats
@@ -92,7 +92,7 @@ load ../lib/common
db-update
checkPackage extra pkg-any-a
- PKGEXT=.pkg.tar.gz releasePackage extra pkg-any-a
+ PKGEXT=.pkg.tar.gz PKGEXT_glob=.pkg.tar.gz releasePackage extra pkg-any-a
run db-update
[[ -z $BUILDDIR ]] || rm -f "${BUILDDIR}/$(__getCheckSum "${TMP}/svn-packages-copy/pkg-any-a/trunk/PKGBUILD")"/*.pkg.tar.gz{,.sig}
[ "$status" -ne 0 ]
@@ -151,7 +151,7 @@ load ../lib/common
@test "add invalid signed package fails" {
local p
releasePackage extra 'pkg-any-a'
- for p in "${STAGING}"/extra/*${PKGEXT}; do
+ for p in "${STAGING}"/extra/*${PKGEXT_glob}; do
unxz $p
xz -0 ${p%%.xz}
done
diff --git a/test/cases/ftpdir-cleanup.bats b/test/cases/ftpdir-cleanup.bats
index 6280ce0..7dfad4a 100644
--- a/test/cases/ftpdir-cleanup.bats
+++ b/test/cases/ftpdir-cleanup.bats
@@ -13,8 +13,8 @@ __checkRepoRemovedPackage() {
local pkgname
for pkgname in $(__getPackageNamesFromPackageBase ${pkgbase}); do
- [[ ! -f ${FTP_BASE}/${PKGPOOL}/${pkgname}-*${PKGEXT} ]]
- [[ ! -f ${FTP_BASE}/${repo}/os/${repoarch}/${pkgname}-*${PKGEXT} ]]
+ [[ ! -f ${FTP_BASE}/${PKGPOOL}/${pkgname}-*${PKGEXT_glob} ]]
+ [[ ! -f ${FTP_BASE}/${repo}/os/${repoarch}/${pkgname}-*${PKGEXT_glob} ]]
done
}
diff --git a/test/lib/common.bash b/test/lib/common.bash
index d34af8a..94fedfe 100644
--- a/test/lib/common.bash
+++ b/test/lib/common.bash
@@ -26,11 +26,12 @@ __buildPackage() {
local pkgarches
local tarch
local pkgnames
+ local PKGEXT="${PKGEXT:-.pkg.tar.xz}"
if [[ -n ${BUILDDIR} ]]; then
cache=${BUILDDIR}/$(__getCheckSum PKGBUILD)
- if __isGlobfile "${cache}"/*${PKGEXT}; then
- cp -Lv ${cache}/*${PKGEXT}{,.sig} ${pkgdest}
+ if __isGlobfile "${cache}"/*${PKGEXT_glob}; then
+ cp -Lv ${cache}/*${PKGEXT_glob}{,.sig} ${pkgdest}
return 0
else
mkdir -p ${cache}
@@ -174,6 +175,7 @@ checkPackageDB() {
local repoarches
local pkgfile
local pkgname
+ local PKGEXT="${PKGEXT:-.pkg.tar.xz}"
# FIXME: We guess the location of the PKGBUILD used for this repo
# We cannot read from trunk as __updatePKGBUILD() might have bumped the version
@@ -221,7 +223,7 @@ checkPackageDB() {
for db in ${DBEXT} ${FILESEXT}; do
[ -r "${FTP_BASE}/${repo}/os/${repoarch}/${repo}${db%.tar.*}" ]
- bsdtar -xf "${FTP_BASE}/${repo}/os/${repoarch}/${repo}${db%.tar.*}" -O | grep -q "${pkgfile%${PKGEXT}}"
+ bsdtar -xf "${FTP_BASE}/${repo}/os/${repoarch}/${repo}${db%.tar.*}" -O | grep -q "${pkgfile%${PKGEXT_glob}}"
done
done
done
--
2.16.1
More information about the arch-projects
mailing list