我正在尝试使用pyflakes
将我的代码集成到构建过程中。我在Makefile
中定义了以下目标:
pyflakes:
find $(APPLICATION_DIRECTORY) -iname "*.py" -exec pyflakes "{}" \;
问题是find
每次都会返回0
,即使存在代码问题(pyflakes
不返回0
)并且make
成功。理想情况下,我想对每个源文件运行检查,如果make
中至少有一个失败,请停止-exec
。有没有办法实现这个目标?
答案 0 :(得分:4)
我认为无法让find
返回-exec
的退出代码
应该采用什么方法来管道xargs
:
find $(APPLICATION_DIRECTORY) -iname "*.py" |xargs -I file pyflakes file
答案 1 :(得分:3)
您可以将find的输出传递给您自己的处理循环,并在pyflakes返回0以外的退出状态时退出。
find . -iname '*.jpg' | \
while read line ; do
pyflakes "$line"
res=$?
if [ $res -ne 0 ] ; then
exit $res
fi
done
答案 2 :(得分:1)
通过
结束查找过程pyflakes:
find $(APPLICATION_DIRECTORY) -iname "*.py" -exec bash -c 'pyflakes {}; if [[ $$? != 0 ]]; then kill -INT $$PPID;fi' \;
如果您想知道语法,这就是makefile中的内容,它不是脚本文件。