From 81f38a427cdef694aaccfb12e1005c746d2008ec Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Thu, 16 May 2024 23:37:01 +0100 Subject: [PATCH] bin/rollup: New program to consolidate the archive of old certificates. --- bin/rollup | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 bin/rollup diff --git a/bin/rollup b/bin/rollup new file mode 100755 index 0000000..4955761 --- /dev/null +++ b/bin/rollup @@ -0,0 +1,40 @@ +#! /bin/sh -e + +thisyear=$(date +%Y) +last=nil + +flush () { + case $last in nil) return ;; esac + (cd tmp/rollup/all && tar cfz - .) >tmp/rollup/$year-all.tgz + mv tmp/rollup/$year-all.tgz archive/ + rm -f archive/$last-??-??T??:??:??Z.tgz + rm -rf tmp/rollup/all +} + +rm -rf tmp/rollup; mkdir -p tmp/rollup +for i in archive/????-??-??T??:??:??Z.tgz; do + base=${i##*/} year=${base%%-*} + case $year in + $thisyear) break ;; + $last) ;; + *) flush; mkdir tmp/rollup/all; last=$year ;; + esac + mkdir tmp/rollup/cur + (cd tmp/rollup/cur && tar xfz -) <$i + mv tmp/rollup/cur/cert.* tmp/rollup/all/ + for j in tmp/rollup/cur/*; do + base=${j##*/} + case $base in + cert.*) + mv tmp/rollup/cur/$base tmp/rollup/all/ + ;; + *) + cat tmp/rollup/cur/$base >>tmp/rollup/all/$base; + rm tmp/rollup/cur/$base + ;; + esac + done + rmdir tmp/rollup/cur +done +flush +rmdir tmp/rollup -- 2.11.0