2010-06-15 5 views

Antwort

17

Sie können dazu die pathconvert Aufgabe verwenden, mit der Eigenschaft setonempty. Für einen Anwendungsfall siehe this example.

<pathconvert refid="myfileset" 
      property="fileset.notempty" 
      setonempty="false"/> 

wird setzen Sie die Eigenschaft fileset.notempty nur, wenn die fileset diejenigen refid ist myfileset nicht leer ist.

Sie müssen nur myfileset mit Ihrem Verzeichnis definieren, und es wird keine umfasst nicht tun ein Verzeichnis leer Test erhalten:

<fileset dir="foo/bar" id="myfileset"/> 
3

Die für tonio's answer nur eine Ergänzung ist.

  • git clone wenn dir leer
  • git fetch sonst

<target name="cvs_checkout" depends="git.clone, git.fetch" /> 

<target name="git.clone" depends="check.dir" unless="dir.contains-files"> 
    <echo message="Directory ${dir} is empty -} git clone" /> 
    <exec executable="git"> 
    <arg value="clone"/> 
    <arg value="${repo}"/> 
    <arg value="${dir}"/> 
    </exec> 
</target> 

<target name="git.fetch" depends="check.dir" if="dir.contains-files"> 
    <echo message="Directory ${dir} contains files -} git fetch" /> 
    <exec executable="git" dir="${dir}"> 
    <arg value="fetch"/> 
    </exec> 
</target> 

<target name="check.dir"> 
    <fileset dir="${dir}" id="fileset"/> 
    <pathconvert refid="fileset" property="dir.contains-files" setonempty="false"/> 
</target>