dev: Changelog-Hook auf prepare-commit-msg umgestellt

This commit is contained in:
2026-03-11 22:34:15 +01:00
parent 1969c21c11
commit e4828dedd0
4 changed files with 48 additions and 17 deletions

View File

@@ -0,0 +1,43 @@
#!/bin/bash
# prepare-commit-msg: Changelog-Eintrag in CHANGELOG-DEV.md schreiben (nur dev-Branch)
# Laeuft nach pre-commit (Version bereits gebumpt) und vor commit-msg.
# git add funktioniert hier zuverlässig für den aktuellen Commit.
branch=$(git symbolic-ref --short HEAD 2>/dev/null)
[[ "$branch" != "dev" ]] && exit 0
root=$(git rev-parse --show-toplevel)
cd "$root"
# Nur bei normalem Commit (nicht amend, merge, squash)
commit_type="${2:-}"
[[ "$commit_type" == "merge" || "$commit_type" == "squash" ]] && exit 0
# Aktuelle Version aus addon.xml (bereits vom pre-commit Hook hochgezaehlt)
version=$(grep -oP 'version="\K[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?[^"]*' addon/addon.xml | head -1)
[[ -z "$version" ]] && exit 0
# Commit-Message aus der Datei lesen (bereits vom User eingegeben oder per -m übergeben)
msg=$(cat "$1")
# Kommentarzeilen entfernen
msg=$(echo "$msg" | grep -v '^#' | sed '/^[[:space:]]*$/d' | head -1)
[[ -z "$msg" ]] && exit 0
today=$(date +%Y-%m-%d)
# Prüfen ob dieser Versions-Eintrag bereits existiert (Doppel-Eintrag verhindern)
if grep -q "^## ${version} " CHANGELOG-DEV.md 2>/dev/null; then
exit 0
fi
# Changelog-Eintrag aufbauen und prependen
{
echo "## ${version} - ${today}"
echo ""
echo "- ${msg}"
echo ""
cat CHANGELOG-DEV.md
} > /tmp/changelog_new.md
mv /tmp/changelog_new.md CHANGELOG-DEV.md
git add CHANGELOG-DEV.md