Führen Sie den Hook pre-commit.com einmal aus (nicht für jede Datei), wenn eine übereinstimmende Datei erkannt wird

Lesezeit: 2 Minuten

Benutzer-Avatar
Lorenz Walthert

Ich habe einen Hook, der Dokumentationsdateien aus Quelldateien generiert, die mit der erstellt wurden pre-commit.com-Framework. Die Funktion, die in diesem Hook aufgerufen wird, hat kein Dateiargument, also erstellt sie einfach eine Dokumentation für alle Quelldateien im Verzeichnis. Der Haken ist a system Hook, dh nur ein Bash-Skript, in dem ich diese Funktion aufrufe, um die Dokumentation zu erstellen. Im pre-commit.com-Framework werden Dateien jedoch an den Hook übergeben, und die Logik besteht darin, einen Hook für jede Datei auszuführen, was in den meisten Fällen sinnvoll ist (z. B. um jede Datei separat zu linten). Meine Frage lautet also: Wie kann ich sicherstellen, dass der Dokumentations-Hook einmal ausgeführt wird, wenn sich eine Quelldatei ändert, anstatt dass er mehrmals (parallel oder nacheinander) für die einzelnen Dateien ausgeführt wird? Konkret generiert mein Hook R-Dokumentation mit roxygen2::roxygenize() und zu finden sind hier.

  • Sieht ähnlich aus wie stackoverflow.com/questions/2412450/…

    – Rudi

    25. Juli 2019 um 10:44 Uhr

  • Ich bin nicht sicher. Meine Frage ist sehr spezifisch für das pre-commit.com-Framework. Ich habe die Frage aktualisiert, um dies besser widerzuspiegeln.

    – Lorenz Walthert

    25. Juli 2019 um 10:53 Uhr


  • Das hört sich so an, als ob Sie versuchen, ein System zu biegen, das für einen bestimmten Anwendungsfall entwickelt wurde EIN auf einen völlig anderen Anwendungsfall anwenden H. Es könnte besser sein, sich ein System anzusehen, das nicht so sehr an den One-File-at-a-Time-Anwendungsfall gebunden ist.

    – Torek

    25. Juli 2019 um 15:59 Uhr

Das Pre-Commit-Framework unterstützt a pass_filenames: false

Die Dokumentation könnte hier vielleicht verbessert werden, aber das ist, was sie zu sagen haben

pass_filenames – (optional: Standard true) wenn true Dieser Hook muss Dateinamen als Positionsargumente annehmen. neu in 0.14.0.

hmmm ja vielleicht nicht die beste Beschreibung — aber wenn false pre-commit wird Ihren Befehl nur einmal aufrufen und keine Dateinamen übergeben

1016900cookie-checkFühren Sie den Hook pre-commit.com einmal aus (nicht für jede Datei), wenn eine übereinstimmende Datei erkannt wird

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy