Thanks for a good idea. nice and simple.

Quick check with following build.xml reveals that the replace does not
modify timestamp even when token is replaced. However this approach will
not catch scenario where 1 instance was replaced when 2 were expected. 

<?xml version="1.0" encoding="UTF-8"?>
<project name="test-replace" default="test">
    <target name="test">
        <echo file="source.txt" message="token"/>
        <copy file="source.txt" tofile="temp.txt"
preservelastmodified="true"/>
        <replace file="temp.txt" token="token" value="replaced"/>
        <condition property="not.replaced">
            <not>
                <uptodate srcfile="source.txt"
targetfile="temp.txt"></uptodate>
            </not>
        </condition>
        <fail if="not.replaced" message="Not replaced"/>
    </target>
</project>

$ ls -lt
total 12
-rw-r--r-- 1 prashant prashant   5 2008-02-05 18:22 source.txt
-rw-r--r-- 1 prashant prashant   8 2008-02-05 18:22 temp.txt
-rw-r--r-- 1 prashant prashant 569 2008-02-05 18:22 build.xml

-Prashant

On Tue, 2008-02-05 at 13:27 +0100, Knuplesch, Juergen wrote:
> Maybe you could copy the file without changing of the timestamp (attribute 
> preservelastmodified).
> Then do the replace on your file.
> Then test via <uptodate> if a change happened.
> Delete the copy
> 
> This will only work, if replace does not change the timestamp, in case of no 
> changes.
> 
> Just an idea...
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to