我正在尝试编写一个makefile来打包一些PHP脚本.我也想它来检查语法错误(使用内置的PHP皮棉工具)建立最终的zip文件之前,为了防止滑倒意外的错误.
到目前为止我有
all: dist
clean:
rm -f output.zip
dist: clean
for i in `find . -name "*.php"`; do php -l $$i; done
zip -r output.zip src -x "*/.*" "*/tests*"
Run Code Online (Sandbox Code Playgroud)
这是有效的,但如果有PHP错误我希望它打破并且不继续构建zip文件(出于显而易见的原因).目前,他们可能只是在成功的lint运行和zip文件的输出页面中丢失.
我是以正确的方式来做这件事的吗?我应该使用make循环而不是shell循环吗?如何让make中止shell命令错误?
你可以这样做:
for i in `find . -name "*.php"`; do \
php -l $$i; \
if [ $$? -ne 0 ] ; then exit 42 ; fi \
done
Run Code Online (Sandbox Code Playgroud)