在我的emacs包fsharp-mode的持续集成测试中,我正在为测试添加字节编译,以便立即获得反馈。我大致使用:
emasc -batch batch-byte-compile *.el
如果出现错误,则返回非零值,但如果只是一个警告,则返回非零值。如果有任何警告,我也会收到警告,因为这可能包括调用未定义的函数(由于输入错误而发生过这种情况)。
那么:在编译警告的情况下如何获得非零返回码?
答案 0 :(得分:5)
您可以将byte-compile-error-on-warn
设置为非零值,如:
$ emacs -Q --batch \
--eval '(setq byte-compile-error-on-warn t)' \
-f batch-byte-compile *.el
现在,字节编译器会在第一次警告时停止,因此您应该在Makefile
中将此设置设为可选,并且只在CI设置中使用它。
如果你需要更复杂的控制,你必须编写自己的后处理器,例如:一个Python脚本,它解析字节编译器的输出并相应地调整退出代码和/或输出,或者编写自己的batch-byte-compile
变体来执行更复杂的处理。