Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to rename a folder using Ant?

Tags:

ant

I want to rename my application folder with a time stamp and then unzip a newer version of my app using the same folder name. Using the Ant (move task), it looks like you can move contents from one folder to another.

Is this the only way I can do this in Ant?

like image 458
JLau Avatar asked Jun 24 '09 21:06

JLau


2 Answers

The move task does do what you're after, but the naming is a bit confusing. If you consider your directory is a 'file' in the Java sense - a file being a filesystem handle that can represent, among others a directory or a file in the usual sense - then the move task makes sense.

So the following

<move file="mySourceDirName" tofile="myTargetDirName"/>

means rename/move the directorymySourceDirName to be instead myTargetDirName.

The following then

<move file="mySourceDirName" todir="someExistingDir"/>

means to move the directory mySourceDirName to become a child directory of the existing someExistingDir directory.

So, in ant the 'file' attribute refers to the target in question, and the 'todir' attribute refers to the directory that is the new parent location for the target file or directory.

like image 164
Phasmal Avatar answered Sep 24 '22 06:09

Phasmal


Just spelling out the answer already given, which is correct...

<project default="move">
    <tstamp/>
    <target name="move">
        <move file="foo" tofile="foo-${TSTAMP}"/>
    </target>
</project>

This moves foo to foo-HHMM.

For example:

$ find .
.
./build.xml
./foo
./foo/bar.txt
$
$ ant
Buildfile: C:\tmp\ant\build.xml

move:

BUILD SUCCESSFUL
Total time: 0 seconds
$
$ find .
.
./build.xml
./foo-1145
./foo-1145/bar.txt
$
like image 29
sudocode Avatar answered Sep 20 '22 06:09

sudocode