Files
claude-workflow/hooks/auto-format.sh
T
martin f66af81da2 feat: Ergänze /script-Skill für Bash-Script-Lifecycle
- Neuer Skill /script mit Repo-Check, Opus-Planung, Sonnet-Implementierung, Shellcheck-Pflicht, Test-Empfehlungen, /ship
- auto-format.sh lintet .sh-Dateien via shellcheck
- bootstrap.sh installiert shellcheck automatisch
- /story speichert Pläne jetzt unter <repo-root>/plans/ und bricht ohne Git-Repo ab
- CLAUDE.md-Tabellen für Skills, Hooks und Tools ergänzt
2026-04-21 08:05:47 +02:00

39 lines
989 B
Bash
Executable File

#!/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