Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2018-05-08 11:30:22 +0200
committerErich Eckner <git@eckner.net>2018-05-08 11:30:22 +0200
commit9bc50bd0b7bbda05b2c9da3130d722e2210fb26d (patch)
tree001170ccb4f778d9c27554fdb91d633aa637bfb0 /bin
parentdd527963c3170975c2c6f87a64d665133dcc2f74 (diff)
lib/common-functions: rewrite remove_old_package_versions to use db and take package id as parameter
Diffstat (limited to 'bin')
-rwxr-xr-xbin/copy-to-build-support14
-rwxr-xr-xbin/return-assignment30
2 files changed, 34 insertions, 10 deletions
diff --git a/bin/copy-to-build-support b/bin/copy-to-build-support
index bd4412a..2de852a 100755
--- a/bin/copy-to-build-support
+++ b/bin/copy-to-build-support
@@ -109,8 +109,8 @@ sed -n '
repository="${id#* }"
id="${id%% *}"
- printf '%s\n' "${package}" >> \
- "${tmp_dir}/packages"
+ printf '%s\n' "${id}" >> \
+ "${tmp_dir}/package-ids"
for suffix in '' '.sig'; do
printf 'ln "i686/%s/%s%s" "i686/build-support/%s%s"\n' \
"${repository}" \
@@ -180,14 +180,14 @@ if [ -s "${tmp_dir}/mysql-command" ]; then
"${tmp_dir}/mysql-command"
fi
-if [ -s "${tmp_dir}/packages" ]; then
- while read -r package; do
- remove_old_package_versions 'i686' 'build-support' "${package}"
+if [ -s "${tmp_dir}/package-ids" ]; then
+ while read -r package_id; do
+ remove_old_package_versions "${package_id}"
done < \
- "${tmp_dir}/packages"
+ "${tmp_dir}/package-ids"
fi
if [ -w "$1" ]; then
- cat "${tmp_dir}/packages" > \
+ cat "${tmp_dir}/package-ids" > \
"$1"
fi
diff --git a/bin/return-assignment b/bin/return-assignment
index 1b5e991..28b01e7 100755
--- a/bin/return-assignment
+++ b/bin/return-assignment
@@ -576,6 +576,30 @@ trigger_mirror_refreshs
} | \
mysql_run_query
-for package in ${packages}; do
- remove_old_package_versions 'i686' "${destination}" "${package}"
-done
+# shellcheck disable=SC2016
+{
+ printf 'SELECT'
+ printf ' `binary_packages`.`id`'
+ printf ' FROM `binary_packages`'
+ mysql_join_binary_packages_architectures
+ mysql_join_binary_packages_repositories
+ printf ' WHERE '
+ mysql_package_name_query
+ printf ' IN ('
+ # shellcheck disable=SC2086
+ printf '%s\n' ${packages} | \
+ base64_encode_each | \
+ sed '
+ s/^/from_base64("/
+ s/$/"),/
+ '
+ printf '"") AND `repositories`.`name`=from_base64("%s");\n' \
+ "$(
+ printf '%s' "${destination}" | \
+ base64 -w0
+ )"
+} | \
+ mysql_run_query | \
+ while read -r package_id; do
+ remove_old_package_versions "${package_id}"
+ done