From 309f52b28e23d58a8c890f05958eb97d1581254b Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Fri, 31 Jan 2020 11:17:24 +0100 Subject: bin/copy-to-build-support: use intentions-queue --- bin/copy-to-build-support | 98 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 72 insertions(+), 26 deletions(-) (limited to 'bin/copy-to-build-support') diff --git a/bin/copy-to-build-support b/bin/copy-to-build-support index 0dcc298..e4850f0 100755 --- a/bin/copy-to-build-support +++ b/bin/copy-to-build-support @@ -11,8 +11,6 @@ # TODO: remove hard-coded package suffixes -# TODO: use the intention-queue - # shellcheck disable=SC2016 usage() { >&2 echo '' @@ -181,10 +179,19 @@ sort -u "${tmp_dir}/repo-archs" | \ while read -r repo_arch; do mkdir "${tmp_dir}/${repo_arch}" - failsafe_rsync \ - "${master_mirror_rsync_directory}/${repo_arch}/build-support/build-support.db."* \ - "${master_mirror_rsync_directory}/${repo_arch}/build-support/build-support.files."* \ - "${tmp_dir}/${repo_arch}/" + { + printf 'failsafe_rsync' + for suffix in 'db' 'files'; do + printf ' "%s/%s/build-support/build-support.%s."*' \ + "${master_mirror_rsync_directory}" \ + "${repo_arch}" \ + "${suffix}" + done + printf ' "%s/%s/"\n' \ + "${tmp_dir}" \ + "${repo_arch}" + } \ + | intent_something done < \ "${tmp_dir}/repo-archs" @@ -192,41 +199,80 @@ if [ -s "${tmp_dir}/to-copy" ]; then mkdir "${tmp_dir}/transit/" while read -r repo_arch; do mkdir "${tmp_dir}/transit/${repo_arch}/" - # shellcheck disable=SC2046 - failsafe_rsync \ - $(sed -n 's,^'"$(str_to_regex "${repo_arch}")"' ,,;T;p' "${tmp_dir}/to-copy") \ - "${tmp_dir}/transit/${repo_arch}/" - repo-add "${tmp_dir}/${repo_arch}/build-support.db.tar.gz" \ - "${tmp_dir}/transit/${repo_arch}/"*".pkg.tar.zst" + { + printf 'failsafe_rsync ' + sed -n ' + s,^'"$(str_to_regex "${repo_arch}")"' ,, + T + p + ' "${tmp_dir}/to-copy" \ + | tr '\n' ' ' + printf ' "%s/transit/%s/"\n' \ + "${tmp_dir}" \ + "${repo_arch}" + printf 'repo-add' + printf ' "%s/%s/build-support.db.tar.gz"' \ + "${tmp_dir}" \ + "${repo_arch}" + printf ' "%s/transit/%s/"*".pkg.tar.zst"\n' \ + "${tmp_dir}" \ + "${repo_arch}" + } \ + | intent_something done < \ "${tmp_dir}/repo-archs" fi if [ -s "${tmp_dir}/sftp-command" ]; then - failsafe_sftp < \ - "${tmp_dir}/sftp-command" + printf 'failsafe_sftp < "%s/sftp-command"\n' \ + "${tmp_dir}" \ + | intent_something fi while read -r repo_arch; do - recompress_gz \ - "${tmp_dir}" \ - "${tmp_dir}/${repo_arch}/build-support."*".tar.gz" \ - "${tmp_dir}/${repo_arch}/build-support."*".tar.gz.old" - failsafe_rsync \ - "${tmp_dir}/${repo_arch}/build-support.db."* \ - "${tmp_dir}/${repo_arch}/build-support.files."* \ - "${master_mirror_rsync_directory}/${repo_arch}/build-support/" + { + printf 'recompress_gz "%s"' \ + "${tmp_dir}" + for suffix in '' '.old'; do + printf ' "%s/%s/build-support."*".tar.gz%s"' \ + "${tmp_dir}" \ + "${repo_arch}" \ + "${suffix}" + done + printf '\n' + printf 'failsafe_rsync' + for suffix in 'db' 'files'; do + printf ' "%s/%s/build-support.%s."*' \ + "${tmp_dir}" \ + "${repo_arch}" \ + "${suffix}" + done + printf ' "%s/%s/build-support/"\n' \ + "${master_mirror_rsync_directory}" \ + "${repo_arch}" + } \ + | intent_something done < \ "${tmp_dir}/repo-archs" if [ -s "${tmp_dir}/mysql-command" ]; then - mysql_run_query < \ - "${tmp_dir}/mysql-command" | \ - sort -u | \ - remove_old_package_versions + { + printf 'mysql_run_query \\\n' + printf '<"%s/mysql-command" \\\n' \ + "${tmp_dir}" + printf '| sort -u \\\n' + printf '| remove_old_package_versions\n' + } \ + | intent_something fi +printf 'rm -rf --one-file-system "%s"\n' \ + "${tmp_dir}" \ +| intent_something + if [ -w "$1" ]; then cat "${tmp_dir}/packages" > \ "$1" fi + +execute_all_intentions -- cgit v1.2.3-54-g00ecf