[英]Checking for existence of a file type in phing
我正在Phing中编写构建脚本,并希望有一个if语句来测试目录中是否存在具有给定扩展名的任何文件(在这种情况下为.sql文件)。 我尝试使用<available>
来执行此操作,如下所示,没有运气( <then>
永远不会执行。有人有任何想法吗?
<if>
<available file="${build.pendingsql}/*" type="file" extension="sql" />
<then>
<!-- Do stuff -->
</then>
</if>
您可以执行类似的操作(根据您的实际需要进行调整,ls在当前环境下运行):
<?xml version="1.0" encoding="UTF-8"?>
<project name="test" default="check">
<target name="check">
<exec checkreturn="true" command="ls *.sql" outputProperty="list"/>
<if>
<equals arg1="${list}" arg2="" />
<then>
<echo msg="not found"/>
</then>
<else>
<echo msg="found ${list}"/>
</else>
</if>
</target>
</project>
在我的Mac上,我最终使用以下命令:
<!-- Are there sql files in pending -->
<exec checkreturn="false" dir="${build.pendingsql}" command="ls *.sql" outputProperty="list"/>
<echo msg="${list}"/>
<if>
<equals arg1="${list}" arg2="ls: *.sql: No such file or directory" />
<then>
<echo msg="No SQL patches found"/>
</then>
<else>
<echo msg="SQL patches found"/>
</else>
</if>
Bolek发布的解决方案的主要变化是checkreturn必须为false,以解决ls退出> 0并将equals test更改为“ ls:* .sql:无此类文件或目录”的问题。 我意识到这有点麻烦,并且可能会崩溃(基于输出不同“ No ...”消息的语言/系统),但它对我有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.