logo

dotfiles

My dotfiles, one branch per machine, rebased on base git clone https://anongit.hacktivis.me/git/dotfiles.git/
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:

M.local/bin/archive-tags36+++++++++++++++++++++++++++---------
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