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.
Führen Sie den Hook pre-commit.com einmal aus (nicht für jede Datei), wenn eine übereinstimmende Datei erkannt wird
Lesezeit: 2 Minuten
10169000cookie-checkFühren Sie den Hook pre-commit.com einmal aus (nicht für jede Datei), wenn eine übereinstimmende Datei erkannt wird
Lorenz Walthert
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: Standardtrue
) wenntrue
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
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