#!/usr/bin/env bash # PostToolUse-Hook: Formatiert geänderte Dateien nach Edit/Write # Wird von settings.json nach Edit- und Write-Tool-Aufrufen ausgeführt set -euo pipefail # Dateiname aus Umgebungsvariable (Claude Code setzt CLAUDE_TOOL_INPUT_FILE_PATH) FILE="${CLAUDE_TOOL_INPUT_FILE_PATH:-}" if [[ -z "$FILE" || ! -f "$FILE" ]]; then exit 0 fi EXT="${FILE##*.}" case "$EXT" in py) if command -v ruff &>/dev/null; then ruff format --quiet "$FILE" 2>/dev/null || true ruff check --fix --quiet "$FILE" 2>/dev/null || true fi ;; js|ts|vue|jsx|tsx) DIR=$(dirname "$FILE") if [[ -f "$DIR/package.json" ]] || [[ -f "$DIR/../package.json" ]]; then if [[ -x "$DIR/node_modules/.bin/eslint" ]] || [[ -x "$DIR/../node_modules/.bin/eslint" ]]; then npx eslint --fix --quiet "$FILE" 2>/dev/null || true fi fi ;; sh) if command -v shellcheck &>/dev/null; then shellcheck "$FILE" || true fi ;; esac exit 0