Как проверить, что каталог пуст в ANT?
Как можно проверить, что каталог пуст в ant?
Ответы
Ответ 1
Вы можете использовать задачу pathconvert
, чтобы сделать это с помощью свойства setonempty
. См. этот пример для использования.
<pathconvert refid="myfileset"
property="fileset.notempty"
setonempty="false"/>
установит свойство fileset.notempty
только в том случае, если набор файлов, для которого этот refid равен myfileset
, не пуст.
Вам просто нужно определить myfileset
с вашим каталогом, и никакие исключения не могут получить пустой тест в каталоге:
<fileset dir="foo/bar" id="myfileset"/>
Ответ 2
Это просто дополнение для ответа tonio.
В этом примере cvs checkout
эмулируется с помощью команд git
:
-
git clone
, когда dir
пуст
-
git fetch
else
<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>