codecharter validate <file> [--license <path>]
<file> ist der Pfad zu einer einzelnen .ccr-Datei. Der Befehl parst die
Direktiven und die Query-Syntax der Datei und gibt die Regel-Metadaten aus,
wenn das Parsen erfolgreich ist. Er prüft nicht, ob die in der Query
verwendeten Properties existieren oder wie sich die Regel auf echtem Code
verhält; verwenden Sie dafür codecharter test, um eine
Regel gegen ihre Hit/Miss-Spec-Fälle zu verifizieren.
Wie jeder CLI-Befehl benötigt validate eine gültige Lizenz. Geben Sie die
Lizenzdatei mit --license <path> oder über die Umgebungsvariable
CODECHARTER_LICENSE an; siehe Lizenzdatei.
Beispiel
codecharter validate .codecharter/rules/repository-naming.ccr
Ausgabe bei Erfolg:
Rule 'Repository class must end in Repository' parsed successfully
Severity: Error
Category: Naming
Description: Repositories must have a 'Repository' suffix for discoverability
Fehlende Direktiven erhalten in den ausgegebenen Metadaten Standardwerte:
ohne @name wird der Dateiname verwendet, ohne @severity gilt warn
(nicht erkannte Severity-Werte werden ebenfalls als warn behandelt), und
ohne @category gilt General.
Bei einem Fehler wird eine Meldung in dieser Form auf stderr ausgegeben:
Validation failed: Parse error: ...
Exit-Codes
0: Die Datei wurde erfolgreich geparst.2: Die Datei konnte nicht geparst oder validiert werden; prüfen Sie stderr aufValidation failed:.6: Lizenzfehler (fehlend, abgelaufen oder für diese CLI-Version nicht gültig).
Empfohlene Verwendung
Als Pre-Commit-Hook für Regeldateien
#!/bin/sh
for file in $(git diff --cached --name-only --diff-filter=ACMR | grep '\.ccr$'); do
if codecharter validate "$file" 2>&1 | grep -q 'Validation failed'; then
echo "Invalid rule file: $file"
exit 1
fi
done
Der Hook prüft die Ausgabe auf Validation failed: statt auf den
Exit-Code. So fangen Sie Syntaxfehler in .ccr-Dateien ab, bevor der
CI-Lauf sie sieht.