ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alx G <glub...@yahoo.co.uk>
Subject Re: how can I copy a directory of files to lower case equivalents?
Date Wed, 10 Oct 2007 10:40:41 GMT


Steve Loughran wrote:
> 
> Alx G wrote:
>> Hi,
>> 
>> Does anyone know if there's anything in Ant that can copy files from a
>> directory to another directory but change all the file names to lower
>> case?
>> 
>> e.g.
>> 
>> working/some_folder/etc/Blah.jpg => dist/some_folder/etc/blah.jpg
>> ...
>> etc. for a whole load of files in various directories.
>> 
>> Perhaps there's something I can add to this?
>> 
>> <copy todir="${dist.dir}/images">
>>     <fileset dir="images"/>
>> </copy>
>> 
>> If there's nothing in Ant directly, I'm going to have to write a PHP
>> script
>> that does the renaming but I'd prefer not to create more scripts.
>> 
>> Any help would be much appreciated.
>> 
>> Many Thanks!
>> 
> 
> The ant-approved way would be a <copy> with an appropriate mapper listed 
> as a nested element. This gives copy the mapping from input filenames to 
> output names, lets it do the copying and dependency management as 
> normal. You just provide the renaming logic .
> 
> I dont see one, but I do see in the manual the <scriptmapper> example, 
> which (ant1.7+ only) would let you do what you want in a few lines
> 
> 
>   <copy todir="${dist.dir}/images">
>       <fileset dir="images"/>
>      <scriptmapper language="javascript">
>       self.addMappedName(source.toLowerCase());
>     </scriptmapper>
>   </copy>
> 
> If you are running on java6, javascript is built in -no need for extra 
> JARs to get scripting working.
> 
> Case conversion does sound like a common use case...you could always 
> write the java mapper and provide it with tests as an ant enhancement 
> bugrep.
> 
> -steve
> 
> 
> 


Thanks a lot for all the suggestions. I've upgraded Ant to 1.7 as I like
this scriptmapper solution because it seems the simplest and most elegant.
I've been trying to get it working but so far no joy.

This is what I have:
...
<copy todir="${build.dir}/images/characters/icons">
	<fileset dir="images/characters/icons"/>
	<scriptmapper language="javascript"> 
		self.addMappedName(source.toLowerCase());				
	</scriptmapper>
</copy>
...

But it currently does nothing at all. If I take out the scriptmapper task
however it goes ahead and copies the 2000+ files (obviously not to lowercase
names as I would like). My files are of the form, Archery_Aim.gif etc. and
the uppercase characters can occur anywhere - I'm not sure if this is
relevant but I thought I'd mention it.

(I'm not bothered about directory names as they are all in lowercase
anyway).
-- 
View this message in context: http://www.nabble.com/how-can-I-copy-a-directory-of-files-to-lower-case-equivalents--tf4554266.html#a13133400
Sent from the Ant - Users mailing list archive at Nabble.com.


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


Mime
View raw message