quiero sobreescribir el archivo hosts en el equipo de Windows si el usuario lo permite:Ant: Condicional Copia
<input message="Do you want to overwrite the HOSTS file?"
addproperty="overwrite.hosts" validargs="yes,no" />
<copy tofile="${env.WINDIR}/system32/drivers/etc/hosts.backup">
<fileset file="${env.WINDIR}/system32/drivers/etc/hosts" />
</copy>
<copy todir="${env.WINDIR}/system32/drivers/etc">
<fileset file="${trainer.dir}/hosts" />
</copy>
¿Cómo hago las copias sólo si el usuario dice que sí?
EDIT:
yo probamos este:
<input message="Do you want to overwrite the HOSTS file?" addproperty="overwrite.hosts" validargs="yes,no" />
<if>
<equals arg1="${overwrite.hosts}" arg2="yes" />
<then>
<copy tofile="${env.windir}/system32/drivers/etc/hosts.backup">
<fileset file="${env.windir}/system32/drivers/etc/hosts">
</fileset>
</copy>
<copy todir="${env.windir}/system32/drivers/etc">
<fileset file="${trainer.dir}/hosts">
</fileset>
</copy>
</then>
</if>
y me da este resultado:
C:\trainer\build.xml:16: Problem: failed to create task or type if
Cause: The name is undefined.
Action: Check the spelling.
Action: Check that any custom tasks/types have been declared.
Action: Check that any <presetdef>/<macrodef> declarations have taken place.
Soy un novato hormiga ... ¿Qué necesito hacer?
para esto tengo que crear un objetivo más. Es por cada trabajo condicional que tengo que probar, luego establecer propiedad y crear un nuevo objetivo que se llamará en la propiedad del conjunto. Cualquier otra manera ? –
Sí, exactamente, si el objetivo copia un montón de archivos diferentes de diferentes lugares y SOLO desea copiar algunos archivos pero no otros ... necesita objetivos redundantes con el mismo conjunto de tareas, frente a la condición dentro de los objetivos para decidir qué tareas para llamar o no – sloven