voglio sovrascrivere i file hosts sulla macchina Windows se l'utente lo permette:Ant: condizionale 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>
Come faccio a fare le copie solo se l'utente dice di sì?
EDIT:
ho provato questo:
<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>
e ottengo questo output:
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.
Sono un rookie formica ... Che cosa devo fare?
per questo devo creare un altro bersaglio. Questo è per ogni lavoro condizionale che devo testarlo, quindi impostare la proprietà e creare un nuovo target che verrà chiamato sulla proprietà set? Ogni altro modo ? –
Sì, esattamente, cosa succede se il tuo obiettivo è copiare un sacco di file diversi da luoghi diversi e vuoi solo copiare alcuni file ma non altri ... hai bisogno di obiettivi ridondanti con lo stesso insieme di compiti, vs condizioni all'interno dei target per decidere quale compiti da chiamare o meno – sloven