logo

utils

Old programs, got split in utils-std and utils-extra git clone https://anongit.hacktivis.me/git/utils.git/
commit: ba3b218c60f60a72ca4c843287df97fdf1bfdc44
parent 34b87ee5487883414c4c6d18c7120b931a66c62d
Author: Haelwenn (lanodan) Monnier <contact@hacktivis.me>
Date:   Sat, 19 Jul 2025 08:17:45 +0200

git-hooks/post-update.srht: check if HEAD got updated before running

Diffstat:

Mgit-hooks/post-update.srht34++++++++++++++++++++++++----------
1 file changed, 24 insertions(+), 10 deletions(-)

diff --git a/git-hooks/post-update.srht b/git-hooks/post-update.srht @@ -68,19 +68,33 @@ EOF } if (not(defined($ENV{'SRHT_HOST'}) && defined($ENV{'SRHT_TOKEN'}))) { - print 'Environment variables $SRHT_HOST and $SRHT_TOKEN are undefined'; + print 'Environment variables $SRHT_HOST and $SRHT_TOKEN are undefined', "\n"; exit 1; } -if (-d "${workdir}/.builds") { +if ($#ARGV < 0) { + print "No refs passed, skipping\n"; + exit 0; +} - # TODO: Shuffle manifests, take 4 - my @manifests = <"${workdir}/.builds/*.yml">; - for (@manifests) { - new_job $_; +open(my $f, '<', 'HEAD') or die "Failed to read HEAD: $!\n"; +chomp(my $head = <$f>); +close($f); + +for(@ARGV) { + next if("ref: $_" ne $head); + + if (-d "${workdir}/.builds") { + # TODO: Shuffle manifests, take 4 + my @manifests = <"${workdir}/.builds/*.yml">; + for (@manifests) { + new_job $_; + } + } elsif (-e "${workdir}/.build.yml") { + new_job "${workdir}/.build.yml"; + } else { + print "No build manifest found\n"; } -} elsif (-e "${workdir}/.build.yml") { - new_job "${workdir}/.build.yml"; -} else { - print "No build manifest found"; + + exit 0; }