ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matt Benson <gudnabr...@yahoo.com>
Subject Re: Creating a fileset from a list of filenames
Date Tue, 03 Nov 2009 13:59:02 GMT


--- On Tue, 11/3/09, Wray, Nathan <Nathan.Wray@compuware.com> wrote:

> From: Wray, Nathan <Nathan.Wray@compuware.com>
> Subject: Creating a fileset from a list of filenames
> To: user@ant.apache.org
> Date: Tuesday, November 3, 2009, 7:16 AM
> Hi All;
> 
>  
> 
> I'm trying to identify modified java files in an SVN
> working copy and
> run checkstyle on these files.  So far I've got a
> property with a list
> of everything modified like:
> 
>  
> 
> /path/file1;/path/file2;/path/file3
> 
>  
> 
> It seems like I need something the opposite of pathconvert
> to turn this
> property into a FileSet.  
> 

If you needed the new fileset for a task that had been updated to use resource collections,
you could use the paths you have directly in a <files> collection.  However, since <checkstyle>
doesn't seem to support the broader resource collection interface, it will be a bit more complicated.
 See below:


> Any suggestions?  The relevant part of my build file
> follows:
> 
>  
> 
> <exec executable="svn"
> outputproperty="svn.status.out">
> 
> <arg value="status" />
> 
> <arg value="${basedir}/.." />
> 
> <arg value="--xml" />
> 
> </exec>
> 
>           
> 
> <xmlproperty prefix="svnstat" collapseattributes="true"
> delimiter=";">
> 
> <propertyset>
> 
> <propertyref name="svn.status.out"/>
> 
> </propertyset>
> 
> </xmlproperty>
> 
>  
> 
> <!--
> 
> Now svnstat.status.target.entry.path contains all of the
> modified files 
> 
> and folders as a semicolon separated list
> 
> This needs to be filtered to just .java files
> 
> -->
> 
> <echo  message="unfiltered list of modified files:
> ${svnstat.status.target.entry.path}"/>
> 
>  
> 
> <!--
> 
> This fails, the list is not a pathid
> 
> -->
> 
> <checkstyle  config="./Checkstyle.xml">
> 
> <fileset pathid="svnstat.status.target.entry.path"/>
> 
> </checkstyle>
> 
>  

This is untested, but:

<pathconvert property="includespattern" pathsep=",">
  <path path="${svnstat.status.target.entry.path}" />
  <globmapper from="${basedir}/*" to="*" handledirsep="true" />
</pathconvert>

And then your fileset would be:

<fileset dir="${basedir}" includes="${includespattern}">
  <filename name="**/*.java" />
</fileset>

HTH,
Matt
> 
>  
> 
>  
> 
> Thank you
> 
> Nathan
> 
>  
> 
>  
> 
> 
> The contents of this e-mail are intended for the named
> addressee only. It contains information that may be
> confidential. Unless you are the named addressee or an
> authorized designee, you may not copy or use it, or disclose
> it to anyone else. If you received it in error please notify
> us immediately and then destroy it.
> 
> 


      

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message