diff --git a/.githooks/pre-commit b/.githooks/pre-commit index bf1df27..dab037a 100755 --- a/.githooks/pre-commit +++ b/.githooks/pre-commit @@ -8,9 +8,25 @@ export PATH="$HOME/development/flutter/bin:$PATH" echo "🔍 Melo App Qualitäts-Gate gestartet..." +# Git reicht GIT_DIR/GIT_INDEX_FILE/GIT_WORK_TREE an Hooks weiter. Flutter +# ermittelt seine Version per git im SDK-Verzeichnis — erbt es dabei GIT_DIR, +# liest es stattdessen DIESES Repo und erfindet daraus eine SDK-Version. +# Betrifft BEIDE Arbeitsbäume, nur unterschiedlich sichtbar: +# verlinkter Worktree -> harter Abbruch ("SDK version is 0.0.0-unknown"), +# korrekte Commits werden abgelehnt +# Haupt-Checkout -> still: Flutter baut sein Werkzeug bei JEDEM Commit +# neu (ein bis zwei Minuten pro Commit) +# Gemessen: ohne GIT_DIR meldet Flutter 3.44.8/stable, mit GIT_DIR dagegen +# 3.48.0-0.2.pre und als Revision einen Commit AUS DIESEM REPO. +# Nebeneffekt: Flutter gibt dabei die Remote-URL aus — steht dort ein Token +# in der URL, landet es in der Hook-Ausgabe. Das unset schließt auch das. +ROOT="$(git rev-parse --show-toplevel)" || exit 1 +unset GIT_DIR GIT_INDEX_FILE GIT_WORK_TREE GIT_PREFIX GIT_COMMON_DIR +cd "$ROOT" || exit 1 + # 1. Dart Analyse echo -n " Prüfe: flutter analyze ... " -cd "$(git rev-parse --show-toplevel)" || exit 1 + ANALYZE_OUTPUT=$($FLUTTER analyze 2>&1) if echo "$ANALYZE_OUTPUT" | grep -q "No issues found"; then echo "✅"