我想为adb reverse tcp:8081 tcp:8081
设置预提交挂钩,并希望在devtools::document
更改任何内容时失败。我检查了devtools::document
来源并返回devtools::document
,因此无法有条件地返回退出代码。
当invisible()
有效时,是否有任何聪明的方法可以阻止提交?
答案 0 :(得分:1)
使用函数capture.output
,我们可以在更改文件时捕获devtools::documents
发送的消息:
Writing getScore.Rd
所以我们跑的时候:
results <- capture.output(devtools::document())
更新文档时(对于此示例,我删除了一个.Rd文件,结果如下所示:
> results
[1] "Writing getScore.Rd"
如果没有写入,results
为空:
> results
character(0)
我认为很容易从这里开始:)
OP,@ BobJansen创建了以下脚本,该脚本运行上述方法,如果没有编辑文件,则返回status = 0
,如果有任何文件,则返回status = 100
:
#!/usr/bin/Rscript
source("packrat/init.R")
lines <- capture.output(devtools::document(), type = 'output')
if (length(lines) > 0) {
print(lines)
q(save = 'no', status = 100)
} else {
q(save = 'no', status = 0)
}