Actually, I think this solution might be more of what you want. The first
solution I gave you will only tell you that there were parameters that
weren't replaced, but won't tell you which parameters weren't replaced.
Imagine if you had 100 parameters, and you only replaced 99 of them. It
would take you a long time to find that one parameter out of the 100 that
didn't get replaced.

This solution will actually give you the lines that weren't substituted:

*<loadresource property="nonreplaced.lines">*
*   <concat>*
*      <fileset dir="${property.dir}"/>*
*      <filterchain>*
*         <linecontainsregexp>*
*            <regexp pattern="@[\w]+@"/>
         </linecontainsregexp>
      </filterchain>
    </concat>
</loadresource>    *

The property *nonreplaced.lines* will now contain all the lines that weren't
replaced. Thus, it would be much easier to correct the situation. You'd know
which one you were missing.

This could be put into a fail message to fail the build if any lines were
detected:

*<fail messsage="Lines not replaced: ${nonreplaced.lines}">
  <condition>
    <length string="${nonreplaced.lines}" when=greater" count="0"/>
  </condition>
</fail>

*
We (including me) really should start looking more into filterchains and
resources. They're a bit harder to understand than standard ant tasks like
"copy", but they offer a lot of power.

On Wed, Jul 22, 2009 at 3:40 PM, Scot P. Floess <sflo...@nc.rr.com> wrote:

>
> Ew - thats a really nice solution :)   Now to remove my foot from my mouth
> ;)
>
>
> On Wed, 22 Jul 2009, David Weintraub wrote:
>
>  Ah! You want to see if the "replace" failed!
>>
>> Try this:
>>
>> *<resoucecount property="files.not.replaced">*
>> *   <fileset dir="${property.dir}">*
>> *      <containsregexp expression="@[...@][^@]*@"/>*
>> *   <fileset>*
>> *</resourcecount>*
>> *
>> <echo>Files failing replace: ${files.not.replaced}</echo>
>> <fail message="Some value didn't get replaced by replacement macro!">
>>  <condition>
>>   <not>
>>     <equal arg1="${files.not.replaced}" arg2="0"/>
>>   </not>
>>  <condition>
>> </fail>
>> *
>>
>> Let's take this apart:
>>
>> The *<fileset dir="${property.dir}">* should be the directory that
>> contains
>> the files with the variables being replaced. You then use the *
>> <containregexp>* to find the files that contain the regular expression "*
>> @[...@][^@]...@*"
>>
>> The *<resourcecount>* counts the number of files that your
>> *<fileset>*selects. Thus if the count is greater than zero, at least
>> one file has a
>> parameter that wasn't replaced.
>>
>> 2009/7/22 Júlio Cesar Bueno Cotta <juliocbco...@gmail.com>
>>
>>  I alread have a ant script to replace the variables..and it is working.
>>> What I need is check if all the variables are beeing replaced.
>>> I have a dev.properties where I have lines like this
>>> @v...@=test
>>>
>>> each @vari@ is replaced to "test" after I run the script.
>>>
>>> But
>>> If I forget to add the variable in the dev.properties , that variable
>>> wont
>>> be replaced.
>>> I want to search all the varibles not replaced.
>>> Thanks.
>>>
>>> 2009/7/22 David Weintraub <qazw...@gmail.com>
>>>
>>>  You can do this with the <copy> task via the <filter>:
>>>>
>>>> A good example is given on this page:
>>>>
>>>> <http://ant.apache.org/manual/CoreTasks/copy.html>
>>>>
>>>> Look for the text "*Copy a set of files to a directory, replacing
>>>> @ti...@with Foo Bar in all files."
>>>>
>>>> *You can also look here: http://ant.apache.org/manual/index.html at the
>>>> <filter> task.
>>>>
>>>> And, take a look over here too:
>>>>
>>>> <http://ant.apache.org/manual/CoreTypes/filterset.html>
>>>>
>>>> This one shows the concept of a "filterset" and how it works with the
>>>> <copy>
>>>> task. It also has some excellent examples.
>>>>
>>>> 2009/7/22 Júlio Cesar Bueno Cotta <juliocbco...@gmail.com>
>>>>
>>>>  Hello there,
>>>>> I am new over here and I need some help.
>>>>> There is a script that replace variables in the files.
>>>>> And I am trying to write a ant script to find in the replaced files (
>>>>>
>>>> into
>>>>
>>>>> a
>>>>> folder like workspace/web-inf/ ) variables witch were not replaced..
>>>>> Someone can help me?
>>>>> Is there some task to do that?
>>>>>
>>>>> I am sorry if I am not clear..my English is not pretty good.
>>>>> Thanks all.
>>>>>
>>>>> --
>>>>>  Júlio Cesar Bueno Cotta
>>>>> Graduando em ciência da computação
>>>>>  Universidade Federal de Viçosa
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> David Weintraub
>>>> qazw...@gmail.com
>>>>
>>>>
>>>
>>>
>>> --
>>>  Júlio Cesar Bueno Cotta
>>> Graduando em ciência da computação
>>>  Universidade Federal de Viçosa
>>>
>>>
>>
>>
>> --
>> David Weintraub
>> qazw...@gmail.com
>>
>>
> Scot P. Floess
> 27 Lake Royale
> Louisburg, NC  27549
>
> 252-478-8087 (Home)
> 919-890-8117 (Work)
>
> Chief Architect JPlate   http://sourceforge.net/projects/jplate
> Chief Architect JavaPIM  http://sourceforge.net/projects/javapim
>
> Architect Keros          http://sourceforge.net/projects/keros
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
> For additional commands, e-mail: user-h...@ant.apache.org
>



-- 
David Weintraub
qazw...@gmail.com

Reply via email to