From 23726784c08e47566691a5870b785742d80f2879 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Wed, 12 Jul 2017 22:50:58 +0200 Subject: bin/clean-cache new for cleaning /var/cache/archbuild32 --- bin/clean-cache | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100755 bin/clean-cache (limited to 'bin/clean-cache') diff --git a/bin/clean-cache b/bin/clean-cache new file mode 100755 index 0000000..726fd2e --- /dev/null +++ b/bin/clean-cache @@ -0,0 +1,57 @@ +#!/bin/sh + +. "${0%/*}/../conf/default.conf" + +if [ $# -eq 0 ]; then + dummynator='sudo' +elif [ $# -eq 1 ] && [ "x$1" = 'x-n' ]; then + dummynator='echo' +else + >&2 echo 'usage: clean-cache [-n]' + >&2 echo ' cleans /var/cache/archbuild32' + >&2 echo ' (or prints what would be cleaned)' + exit 1 +fi + +repos='build-support community-staging community-testing community core extra gnome-unstable kde-unstable staging testing' + +mirror="$( + grep -m1 '^Server = ' '/etc/pacman.d/mirrorlist32' | \ + cut -d= -f2 | \ + sed 's|^\s*||' +)" + +tmp_dir="$(mktemp -d)" +trap 'rm -rf --one-file-system "${tmp_dir}"' EXIT + +for repo in ${repos}; do + mkdir "${tmp_dir}/${repo}" + wget -qO - "$( + echo "${mirror}" | \ + sed "$( + printf 's|%s|%s|\n' \ + '\$repo' "${repo}" \ + '\$arch' 'i686' \ + '$' "/${repo}.db.tar.gz" + )" + )" | \ + tar -xzC "${tmp_dir}/${repo}" +done + +find "${tmp_dir}" -type f -name desc \ + -printf '%h ' \ + -exec grep -xFA1 '%SHA256SUM%' {} \; | \ + sed ' + N + s|^.\+/\([^/]\+\) %SHA256SUM%\n\(.\+\)$|\2 /var/cache/archbuild32/\1| + ' | \ + sort -k2,2 | \ + uniq -uf1 | \ + while read -r s; do + printf '%s%s\n' \ + "${s}" '-i686.pkg.tar.xz' \ + "${s}" '-any.pkg.tar.xz' + done | \ + sha256sum -c --ignore-missing --quiet 2> /dev/null | \ + sed 's|: FAILED$||' | \ + xargs -r ${dummynator} rm -- cgit v1.2.3-70-g09d2