index : devops | |
Archlinux32 devs' convenience-scripts | gitolite user |
summaryrefslogtreecommitdiff |
-rwxr-xr-x | sync-any-packages | 41 |
diff --git a/sync-any-packages b/sync-any-packages index 8ca9ef7..7c8fb1a 100755 --- a/sync-any-packages +++ b/sync-any-packages @@ -68,27 +68,24 @@ for repo in core extra; do | parallel -N 2 -j 20 "$0" done -ls "${dir}/pool-any" \ -| grep -vxFf <( - for repo in core extra; do - bsdtar -Oxf "/var/lib/pacman/sync/${repo}.db" - done \ - | sed -n ' - /^%FILENAME%/ { - N - s/^.*\n// - p - s/$/.sig/ - p - } - ' -) \ -| while read -r pkg; do - rm -vf "${dir}/pool-any/${pkg}" "${dir}/pool-any/${pkg}.sig" +tmp_dir=$(mktemp -d) +trap 'cd / && rm -rf --one-file-system "${tmp_dir:?}"' EXIT + +for repo in core extra; do + bsdtar -C "${tmp_dir}" -xf "/var/lib/pacman/sync/${repo}.db" +done + +for desc_file in "${tmp_dir}/"*"/desc"; do + sed ' + /^%ARCH%$/ !d + N + s/^.*\n// + ' "${desc_file}" \ + | grep -qxF any \ + && continue + rm "${desc_file}" + rmdir "${desc_file%/*}" done -cd "${dir}/pool-any" -repo-add build-support-any.db.tar.gz $( - ls "${dir}/pool-any" \ - | grep -v '\.sig$' -) +cd "${tmp_dir}" +bsdtar -czf "${dir}/pool-any/build-support-any.db.tar.gz" --strip-components=1 . |