2014-05-24 3 views
0

Phing에서 빌드 스크립트를 작성하고 디렉터리 (이 경우 .sql 파일)에 지정된 확장명을 가진 파일이 있는지 테스트하는 if 문을 갖고 싶습니다. . 아래 그림과 같이 내가? 행운합니다 (<then> 실행되지 없구요. 누구나 어떤 아이디어가와, <available>이 작업을 수행하기 위해 노력했다phing에서 파일 형식 존재 여부 확인

<if> 
    <available file="${build.pendingsql}/*" type="file" extension="sql" /> 
    <then> 

     <!-- Do stuff --> 

    </then> 
</if> 

답변

0

나는 다음을 사용하여 종료 > 0을 종료하고 equals 테스트를 "ls : * .sql : No such file or directory"로 변경하려면 return이 false 여야합니다. 나는 이것이 약간의 해키이고 ("No such .."메시지를 출력하는 언어/시스템에 기반하여) 깨질지도 모르지만 그것은 나를 위해 일한다.

1

당신은 (당신의 정확한 요구, LS 실행에 조정할 뭔가를 할 수 있습니다) 현재 drectory에서 : 체크 있습니다 Bolek에 의해 게시 된 용액으로부터

<!-- 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> 

의 주요 변경 사항 : 내 맥에

<?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> 
+0

불행히도 ls * .sql은 Mac에서 "> 0"을 반환하지 않으며 Mac에서는 더 이상 종료합니다. 그래도 많은 감사합니다, 당신은 나를 올바른 길로 가게했습니다 ... – AndrewD