From 58e5cc0279f666903b45ab93cffd96c0bef92e60 Mon Sep 17 00:00:00 2001 From: strmfos <155266597+strmfos@users.noreply.github.com> Date: Sun, 19 Oct 2025 11:42:33 +0200 Subject: [PATCH] fix: restore repo state after diffcheck run --- scripts/diffcheck.sh | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/scripts/diffcheck.sh b/scripts/diffcheck.sh index aa9f557cf2..1bc39332f4 100755 --- a/scripts/diffcheck.sh +++ b/scripts/diffcheck.sh @@ -1,10 +1,27 @@ #!/bin/bash +set -euo pipefail + scripts/buildtable.pl >/tmp/table.mediawiki 2> /dev/null diff README.mediawiki /tmp/table.mediawiki | grep '^[<>] |' >/tmp/after.diff || true -if git checkout HEAD^ && scripts/buildtable.pl >/tmp/table.mediawiki 2>/dev/null; then + +orig_branch=$(git symbolic-ref --short HEAD 2>/dev/null || true) +orig_head=$(git rev-parse HEAD) + +cleanup() { + if [[ -n "$orig_branch" ]]; then + git checkout "$orig_branch" >/dev/null 2>&1 || git checkout "$orig_head" >/dev/null 2>&1 + else + git checkout "$orig_head" >/dev/null 2>&1 || true + fi +} +trap cleanup EXIT + +if git checkout HEAD^ >/dev/null 2>&1; then + trap 'cleanup; exit 1' INT TERM HUP + scripts/buildtable.pl >/tmp/table.mediawiki 2>/dev/null diff README.mediawiki /tmp/table.mediawiki | grep '^[<>] |' >/tmp/before.diff || true - newdiff=$(diff -s /tmp/before.diff /tmp/after.diff -u | grep '^+') + newdiff=$(diff -s /tmp/before.diff /tmp/after.diff -u | grep '^[+]') if [ -n "$newdiff" ]; then echo "$newdiff" exit 1