public class Symlink extends DispatchTask
This task performs several related operations. In the most trivial and default usage, it creates a link specified in the link attribute to a resource specified in the resource attribute. The second usage of this task is to traverse a directory structure specified by a fileset, and write a properties file in each included directory describing the links found in that directory. The third usage is to traverse a directory structure specified by a fileset, looking for properties files (also specified as included in the fileset) and recreate the links that have been previously recorded for each directory. Finally, it can be used to remove a symlink without deleting the associated resource.
Usage examples:
Make a link named "foo" to a resource named "bar.foo" in subdir:
<symlink link="${dir.top}/foo" resource="${dir.top}/subdir/bar.foo"/>
Record all links in subdir and its descendants in files named "dir.links":
<symlink action="record" linkfilename="dir.links">
<fileset dir="${dir.top}" includes="subdir/**" />
</symlink>
Recreate the links recorded in the previous example:
<symlink action="recreate">
<fileset dir="${dir.top}" includes="subdir/**/dir.links" />
</symlink>
Delete a link named "foo" to a resource named "bar.foo" in subdir:
<symlink action="delete" link="${dir.top}/foo"/>
LIMITATIONS: Because Java has no direct support for
handling symlinks this task divines them by comparing canonical and
absolute paths. On non-unix systems this may cause false positives.
Furthermore, any operating system on which the command
ln -s link resource is not a valid command on the command line
will not be able to use action="delete", action="single"
or action="recreate", but action="record" should still
work. Finally, the lack of support for symlinks in Java means that all links
are recorded as links to the canonical resource name.
Therefore the link: link --> subdir/dir/../foo.bar will be
recorded as link=subdir/foo.bar and restored as
link --> subdir/foo.bar.
| Constructor and Description |
|---|
Symlink() |
| Modifier and Type | Method and Description |
|---|---|
void |
addFileset(FileSet set)
Add a fileset to this task.
|
void |
delete()
Delete a symlink.
|
void |
execute()
The standard method for executing any task.
|
void |
init()
Initialize the task.
|
void |
record()
Record symlinks.
|
void |
recreate()
Restore symlinks.
|
void |
setAction(String action)
Set the action to be performed.
|
void |
setFailOnError(boolean foe)
Set failonerror mode.
|
void |
setLink(String lnk)
Set the name of the link.
|
void |
setLinkfilename(String lf)
Set the name of the file to which links will be written.
|
void |
setOverwrite(boolean owrite)
Set overwrite mode.
|
void |
setResource(String src)
Set the name of the resource to which a link should be created.
|
void |
single()
Create a symlink.
|
getAction, getActionParameterNamebindToOwner, getOwningTarget, getRuntimeConfigurableWrapper, getTaskName, getTaskType, getWrapper, handleErrorFlush, handleErrorOutput, handleFlush, handleInput, handleOutput, isInvalid, log, log, log, log, maybeConfigure, perform, reconfigure, setOwningTarget, setRuntimeConfigurableWrapper, setTaskName, setTaskTypeclone, getDescription, getLocation, getProject, setDescription, setLocation, setProjectpublic void addFileset(FileSet set)
set - The fileset to add.public void delete()
throws BuildException
BuildException - on error.public void execute()
throws BuildException
execute in class TaskBuildException - on error.public void init()
throws BuildException
init in class TaskBuildException - on error.public void record()
throws BuildException
BuildException - on error.public void recreate()
throws BuildException
BuildException - on error.public void setAction(String action)
setAction in class DispatchTaskaction - The action to perform.public void setFailOnError(boolean foe)
foe - If true throw BuildException on error, else log it.public void setLink(String lnk)
lnk - The name for the link.public void setLinkfilename(String lf)
lf - The name of the file to write links to.public void setOverwrite(boolean owrite)
owrite - If true overwrite existing links.public void setResource(String src)
src - The resource to be linked.public void single()
throws BuildException
BuildException - on error.