One thing to be aware of is the encoding type of a file. Replace will only perform a replace on one encoding. A default is used if not specified. I had an issue where developers were using different text editors to edit text files.... and my replace didn't work initially.
-----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: 18 December 2006 13:35 To: user@ant.apache.org Subject: AW: Replace Question <replaceregexp><fileset><contains> Jan >-----Ursprüngliche Nachricht----- >Von: Andrew Goktepe [mailto:[EMAIL PROTECTED] >Gesendet: Freitag, 15. Dezember 2006 16:09 >An: Ant Users List >Betreff: Re: Replace Question > >If you are running Ant 1.6.3 or later, you can use the <isfileselected> >condition: > > <condition property="skip.replacement"> > <isfileselected file="bin/start.bat"> > <contains text="set bar=foostart" /> > </isfileselected> > </condition> > >The skip.replacement property will be set if the file already contains >the replacement text. You can then run <replace> conditionally on this >property. > >You could also use ant-contrib with <if> to combine the check with the >execution: > > <if> > <isfileselected file="bin/start.bat"> > <contains text="set bar=foostart" /> > </isfileselected> > <then/> > <else> > <replace dir="bin" file="bin/start.bat"> > <replacetoken><![CDATA[start]]></replacetoken> > <replacevalue><![CDATA[set >bar=foostart]]></replacevalue> > </replace> > </else> > </if> > >-Andrew > > >On 12/14/06, Fenlason, Josh <[EMAIL PROTECTED]> wrote: >> >> I want to add a line to a file, but only if the file doesn't already >> contain that line. I can add the line fine, but I can't >figure out how >> to do it conditionally. Is this possible? Here's what I >have so far. >> Any suggestions would be greatly appreciated. Thanks in advance. >> <target name="test"> >> <!-- this replace works, but it adds the line every time --> >> <replace dir="bin" file="bin/start.bat"> >> <replacetoken><![CDATA[start]]></replacetoken> >> <replacevalue><![CDATA[set bar=foo start]]></replacevalue> >> </replace> >> >> <!-- this doesn't replace anything no matter if start.bat >> contains set bar=foo or not --> >> <replace dir="bin" includes="bin/start.bat"> >> <not><contains text="set bar=foo" casesensitive="yes"/></not> >> <replacetoken><![CDATA[start]]></replacetoken> >> <replacevalue><![CDATA[set bar=foo start]]></replacevalue> >> </replace> >> >> </target> >> , >> Josh. >> >> > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]