Der obige ant Skript implementiert if dir_is_empty then git-clone else git-fetch
mit Ant-1.7.1 Kernaussagen erfüllt sind:Ant-Task ausführen, wenn zwei Bedingungen
<target name="update" depends="git.clone, git.fetch" />
<target name="check.dir">
<fileset dir="${dir}" id="fileset"/>
<pathconvert refid="fileset" property="dir.contains-files" setonempty="false"/>
</target>
<target name="git.clone" depends="check.dir" unless="dir.contains-files">
<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" >
<exec executable="git" dir="${dir}">
<arg value="fetch"/>
</exec>
</target>
(siehe my other post)
Aber wie ein implementieren target
durch zwei Bedingungen aktiviert?
if dir_does_not_exist or dir_is_empty then git-clone else git-fetch
mein aktueller Versuch:
<target name="git.clone"
depends="chk.exist, chk.empty"
unless="!dir.exist || dir.noempty" >
[...]
</target>
<target name="chk.exist">
<condition property="dir.exist">
<available file="${dir}/.git" type="dir"/>
</condition>
</target>
[...]
Ich würde Ant-1.7.1 Kernaussagen bevorzugen. Aber ich bin offen über andere Möglichkeiten als Ant contrib oder embedded script ... Fühlen Sie sich frei, Ihre Ideen zu veröffentlichen ...
(auch Execute ANT task just if a condition is met siehe Frage)