ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Júlio Cesar Bueno Cotta <juliocbco...@gmail.com>
Subject Re: help to find not replaced variables
Date Fri, 24 Jul 2009 15:17:27 GMT
I am sorry, if I spent too much time to give a answer here..but I was busy
with other things..
well..
Thanks a lot David.
You gave me the answer, and a good explanation about this.
But..I still need some help with this..
I had try to do a test with this
-----------------------------------------------------------------
<?xml version="1.0"?>
<project name="test" basedir="." default="search">
    <property name="property.dir" value="/test/"/>
    <target name="search">
        <fail messsage="Lines not replaced: ${nonreplaced.lines}">
         <condition>
        <loadresource property="nonreplaced.lines">
           <concat>
              <fileset dir="${property.dir}"/>
              <filterchain>
                 <linecontainsregexp>
                    <regexp pattern="@[\w]+@"/>
                </linecontainsregexp>
             </filterchain>
           </concat>
        </loadresource>
           <length string="${nonreplaced.lines}" when="greater" count="0"/>
         </condition>
        </fail>
        <\target>
</project>
----------------------------------------------------------------------------------------------

I had create the directory test in the directory where I ran the script
..and inside of that directory a text file with a line @test@

when I try to run "ant" command and I get "BUILD FAILED" :(
"The content of elements must consist of well-formed character data or
markup."

I am really sorry..I guess I can doing something wrong too much noob.
Please, if someone can tell me what is wrong..
Thanks all.

2009/7/22 David Weintraub <qazwart@gmail.com>

> 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 <sfloess@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 <juliocbcotta@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
> >>> @vari@=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 <qazwart@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
> >>>> @TITLE@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 <juliocbcotta@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
> >>>> qazwart@gmail.com
> >>>>
> >>>>
> >>>
> >>>
> >>> --
> >>>  Júlio Cesar Bueno Cotta
> >>> Graduando em ciência da computação
> >>>  Universidade Federal de Viçosa
> >>>
> >>>
> >>
> >>
> >> --
> >> David Weintraub
> >> qazwart@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-unsubscribe@ant.apache.org
> > For additional commands, e-mail: user-help@ant.apache.org
> >
>
>
>
> --
> David Weintraub
> qazwart@gmail.com
>



-- 
  Júlio Cesar Bueno Cotta
Graduando em ciência da computação
   Universidade Federal de Viçosa

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message