Ich möchte einen Pre-Commit Hook für devtools::document
einrichten und das Commit fehlschlagen, wenn devtools::document
ändert nichts. Ich überprüfte die devtools::document
Quelle und es gibt invisible()
zurück, so dass es nicht möglich ist, einen Beendigungscode bedingt zurückzugeben.Pre-Commit-Hook für Devtools :: Dokument
Gibt es clevere Möglichkeiten, das Commit zu stoppen, wenn devtools::document
funktioniert?
'devtools :: Dokument()' schreibt eine Nachricht an STDOUT (in der Regel der Konsole), wenn es eine Datei ändert: 'Schreiben getScore.Rd' . Vielleicht, wenn Sie das erkennen können, könnten Sie damit arbeiten. – JAD
Interessant, für mich druckt es auch die Aktualisierung und das Laden von Nachrichten (in rot), aber sie werden nicht von 'capture.output' zurückgegeben. – JAD
Hast du dieses Skript schon getestet? Ich habe das Gefühl, dass das nicht funktionieren wird. 'capture.output' hat zwei Arten von Ausgaben zu fangen und mit' message' greifen Sie nur die zwei Standardnachrichten (update und loading). Die Nachricht 'Datei.Rd schreiben 'ist eigentlich keine Nachricht, sondern eine Ausgabe. ** Du fängst diese also jetzt nicht an. ** Du solltest den Typ in 'type =" output "' ändern und dann nach 'length (lines)> 0' testen. – JAD