commit: d5c481b41cb846231e311c5a0a684d73e1055ce3
parent 7b256eadbcebd4c4259808393a498e7873989bca
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date: Mon, 3 Feb 2025 03:55:10 +0100
archive-tags: add publishing automation + set files mtime according to tag
Diffstat:
1 file changed, 27 insertions(+), 9 deletions(-)
diff --git a/.local/bin/archive-tags b/.local/bin/archive-tags
@@ -1,4 +1,5 @@
#!/bin/sh
+reldir="/srv/web/hacktivis.me/releases/"
workdir=$(git rev-parse --show-toplevel)
name=$(basename ${workdir})
@@ -13,17 +14,34 @@ mkdir -p "${workdir}.archives"
minisign-rotate
git tag -l | egrep '^v?[0-9]+\.' | while read -r tag; do
- year=$(git tag -v --format='%(taggerdate:format:%Y)' "$tag")
version=$(echo $tag | sed 's/^v//')
file="${workdir}.archives/${name}-$(echo "${version}" | tr '/' '_').tar.gz"
- test -f "${file}" || git archive \
- --format tar.gz \
- --prefix "${name}-${version}/" \
- -o "${file}" \
- -- \
- "${tag}"
+ if test ! -f "${file}" && test ! -f "${file}.sign"; then
+ year=$(git tag -v --format='%(taggerdate:format:%Y)' "$tag")
+ date_time=$(git tag -v --format='%(taggerdate:iso)' "$tag")
- #test -f "${file}.sig" || gpg --detach-sign "${file}"
- test -f "${file}.sign" || get_minisign_pass | signify -S -x "${file}.sign" -s "~/.minisign/${year}.key" -m "${file}"
+ test -f "${file}" || git archive \
+ --format tar.gz \
+ --prefix "${name}-${version}/" \
+ -o "${file}" \
+ -- \
+ "${tag}"
+
+ touch -d "${date_time}" "${file}"
+
+ #test -f "${file}.sig" || gpg --detach-sign "${file}"
+ test -f "${file}.sign" || get_minisign_pass | signify -S -x "${file}.sign" -s "~/.minisign/${year}.key" -m "${file}"
+
+ touch -d "${date_time}" "${file}.sign"
+
+ printf 'Publish %s ? ' "$tag"
+ if [ "$(read)" = y* ]; then
+ mkdir -p "${reldir}/${name}/"
+ cp -p "${file}" "${file}.sign" "${reldir}/${name}/"
+
+ # Changelog
+ test -f "${file}.txt" && cp -p "${file}.txt" "${reldir}/${name}/"
+ fi
+ fi
done