PR: 9809 Submitted by: Gus Heck <gus.heck at olin.edu> git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@273508 13f79535-47bb-0310-9956-ffa450edef68master
@@ -89,6 +89,8 @@ Other changes: | |||
* new task <symlink> that creates and maintains symbolic links. | |||
* new tasks <chown> and <chgrp> which are wrappers of the Unix commands. | |||
Changes from Ant 1.5.1Beta1 to 1.5.1 | |||
==================================== | |||
@@ -0,0 +1,95 @@ | |||
<html> | |||
<head> | |||
<meta http-equiv="Content-Language" content="en-us"> | |||
<title>Chgrp Task</title> | |||
</head> | |||
<body> | |||
<h2><a name="Chgrp">Chgrp</a></h2> | |||
<h3>Description</h3> | |||
<p>Changes the group of a file or all files inside specified | |||
directories. Right now it has effect only under Unix. The group | |||
atribute is equivalent to the coresponding argument for the chgrp | |||
command.</p> | |||
<p><a href="../CoreTypes/fileset.html">FileSet</a> can be specified | |||
using nested <code><fileset></code> elements.</p> | |||
<h3>Parameters</h3> | |||
<table border="1" cellpadding="2" cellspacing="0"> | |||
<tr> | |||
<td valign="top"><b>Attribute</b></td> | |||
<td valign="top"><b>Description</b></td> | |||
<td align="center" valign="top"><b>Required</b></td> | |||
</tr> | |||
<tr> | |||
<td valign="top">file</td> | |||
<td valign="top">the file of which the group must be changed.</td> | |||
<td valign="top" valign="middle" rowspan="2">one of the two or | |||
nested <code><fileset></code> elements.</td> | |||
</tr> | |||
<tr> | |||
<td valign="top">dir</td> | |||
<td valign="top">the directory whose group must be changed.</td> | |||
</tr> | |||
<tr> | |||
<td valign="top">group</td> | |||
<td valign="top">the new group.</td> | |||
<td valign="top" align="center">Yes</td> | |||
</tr> | |||
<tr> | |||
<td valign="top">parallel</td> | |||
<td valign="top">process all specified files using a single | |||
<code>chgrp</code> command. Defaults to true.</td> | |||
<td valign="top" align="center">No</td> | |||
</tr> | |||
<tr> | |||
<td valign="top">type</td> | |||
<td valign="top">One of <i>file</i>, <i>dir</i> or | |||
<i>both</i>. If set to <i>file</i>, only the group of | |||
plain files are going to be changed. If set to <i>dir</i>, only | |||
the directories are considered.</td> | |||
<td align="center" valign="top">No, default is <i>file</i></td> | |||
</tr> | |||
</table> | |||
<h3>Examples</h3> | |||
<blockquote> | |||
<p><code><chgrp file="${dist}/start.sh" group="coders"/></code></p> | |||
</blockquote> | |||
<p>makes the "start.sh" file belong to the coders group on a | |||
UNIX system.</p> | |||
<blockquote> | |||
<pre> | |||
<chgrp owner="coderjoe"> | |||
<fileset dir="${dist}/bin" includes="**/*.sh"/> | |||
</chgrp> | |||
</pre> | |||
</blockquote> | |||
<p>makes all ".sh" files below <code>${dist}/bin</code> | |||
belong to the coders group on a UNIX system.</p> | |||
<blockquote> | |||
<pre> | |||
<chgrp group="coders"> | |||
<fileset dir="shared/sources1"> | |||
<exclude name="**/trial/**"/> | |||
</fileset> | |||
<fileset refid="other.shared.sources"/> | |||
</chgrp> | |||
</pre> | |||
</blockquote> | |||
<p>makes all files below <code>shared/sources1</code> (except those | |||
below any directory named trial) belong to the coders group on a UNIX | |||
system. In addition all files belonging to a FileSet | |||
with <code>id</code> <code>other.shared.sources</code> get the same | |||
group.</p> | |||
<hr> | |||
<p align="center">Copyright © 2002 Apache Software | |||
Foundation. All rights Reserved.</p> | |||
</body> | |||
</html> | |||
@@ -0,0 +1,94 @@ | |||
<html> | |||
<head> | |||
<meta http-equiv="Content-Language" content="en-us"> | |||
<title>Chown Task</title> | |||
</head> | |||
<body> | |||
<h2><a name="Chown">Chown</a></h2> | |||
<h3>Description</h3> | |||
<p>Changes the owner of a file or all files inside specified | |||
directories. Right now it has effect only under Unix. The owner | |||
atribute is equivalent to the coresponding argument for the chown | |||
command.</p> | |||
<p><a href="../CoreTypes/fileset.html">FileSet</a> can be specified | |||
using nested <code><fileset></code> elements.</p> | |||
<h3>Parameters</h3> | |||
<table border="1" cellpadding="2" cellspacing="0"> | |||
<tr> | |||
<td valign="top"><b>Attribute</b></td> | |||
<td valign="top"><b>Description</b></td> | |||
<td align="center" valign="top"><b>Required</b></td> | |||
</tr> | |||
<tr> | |||
<td valign="top">file</td> | |||
<td valign="top">the file of which the owner must be changed.</td> | |||
<td valign="top" valign="middle" rowspan="2">one of the two or | |||
nested <code><fileset></code> elements.</td> | |||
</tr> | |||
<tr> | |||
<td valign="top">dir</td> | |||
<td valign="top">the directory of which the owner must be changed.</td> | |||
</tr> | |||
<tr> | |||
<td valign="top">owner</td> | |||
<td valign="top">the new owner.</td> | |||
<td valign="top" align="center">Yes</td> | |||
</tr> | |||
<tr> | |||
<td valign="top">parallel</td> | |||
<td valign="top">process all specified files using a single | |||
<code>chown</code> command. Defaults to true.</td> | |||
<td valign="top" align="center">No</td> | |||
</tr> | |||
<tr> | |||
<td valign="top">type</td> | |||
<td valign="top">One of <i>file</i>, <i>dir</i> or | |||
<i>both</i>. If set to <i>file</i>, only the owner of | |||
plain files are going to be changed. If set to <i>dir</i>, only | |||
the directories are considered.</td> | |||
<td align="center" valign="top">No, default is <i>file</i></td> | |||
</tr> | |||
</table> | |||
<h3>Examples</h3> | |||
<blockquote> | |||
<p><code><chown file="${dist}/start.sh" owner="coderjoe"/></code></p> | |||
</blockquote> | |||
<p>makes the "start.sh" file belong to coderjoe on a | |||
UNIX system.</p> | |||
<blockquote> | |||
<pre> | |||
<chown owner="coderjoe"> | |||
<fileset dir="${dist}/bin" includes="**/*.sh"/> | |||
</chown> | |||
</pre> | |||
</blockquote> | |||
<p>makes all ".sh" files below <code>${dist}/bin</code> | |||
belong to coderjoe on a UNIX system.</p> | |||
<blockquote> | |||
<pre> | |||
<chown owner="coderjoe"> | |||
<fileset dir="shared/sources1"> | |||
<exclude name="**/trial/**"/> | |||
</fileset> | |||
<fileset refid="other.shared.sources"/> | |||
</chown> | |||
</pre> | |||
</blockquote> | |||
<p>makes all files below <code>shared/sources1</code> (except those | |||
below any directory named trial) belong to coderjoe on a UNIX | |||
system. In addition all files belonging to a FileSet | |||
with <code>id</code> <code>other.shared.sources</code> get the same | |||
owner.</p> | |||
<hr> | |||
<p align="center">Copyright © 2002 Apache Software | |||
Foundation. All rights Reserved.</p> | |||
</body> | |||
</html> | |||
@@ -18,6 +18,8 @@ | |||
<a href="OptionalTasks/dotnet.html">.NET Tasks</a><br> | |||
<a href="OptionalTasks/antlr.html">ANTLR</a><br> | |||
<a href="OptionalTasks/cab.html">Cab</a><br> | |||
<a href="OptionalTasks/chgrp.html">Chgrp</a><br> | |||
<a href="OptionalTasks/chown.html">Chown</a><br> | |||
<a href="OptionalTasks/clearcase.html">Clearcase Tasks</a><br> | |||
<a href="OptionalTasks/ccm.html">Continuus/Synergy Tasks</a><br> | |||
<a href="OptionalTasks/depend.html">Depend</a><br> | |||
@@ -172,6 +172,8 @@ jarlib-resolve=org.apache.tools.ant.taskdefs.optional.extension.JarLibResolveTas | |||
setproxy=org.apache.tools.ant.taskdefs.optional.net.SetProxy | |||
vbc=org.apache.tools.ant.taskdefs.optional.dotnet.VisualBasicCompile | |||
symlink=org.apache.tools.ant.taskdefs.optional.unix.Symlink | |||
chgrp=org.apache.tools.ant.taskdefs.optional.unix.Chgrp | |||
chown=org.apache.tools.ant.taskdefs.optional.unix.Chown | |||
# deprecated ant tasks (kept for back compatibility) | |||
starteam=org.apache.tools.ant.taskdefs.optional.scm.AntStarTeamCheckOut | |||
@@ -0,0 +1,123 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2002 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in | |||
* the documentation and/or other materials provided with the | |||
* distribution. | |||
* | |||
* 3. The end-user documentation included with the redistribution, if | |||
* any, must include the following acknowlegement: | |||
* "This product includes software developed by the | |||
* Apache Software Foundation (http://www.apache.org/)." | |||
* Alternately, this acknowlegement may appear in the software itself, | |||
* if and wherever such third-party acknowlegements normally appear. | |||
* | |||
* 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||
* Foundation" must not be used to endorse or promote products derived | |||
* from this software without prior written permission. For written | |||
* permission, please contact apache@apache.org. | |||
* | |||
* 5. Products derived from this software may not be called "Apache" | |||
* nor may "Apache" appear in their names without prior written | |||
* permission of the Apache Group. | |||
* | |||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* ==================================================================== | |||
* | |||
* This software consists of voluntary contributions made by many | |||
* individuals on behalf of the Apache Software Foundation. For more | |||
* information on the Apache Software Foundation, please see | |||
* <http://www.apache.org/>. | |||
*/ | |||
/* | |||
* Since the initial version of this file was deveolped on the clock on | |||
* an NSF grant I should say the following boilerplate: | |||
* | |||
* This material is based upon work supported by the National Science | |||
* Foundaton under Grant No. EIA-0196404. Any opinions, findings, and | |||
* conclusions or recommendations expressed in this material are those | |||
* of the author and do not necessarily reflect the views of the | |||
* National Science Foundation. | |||
*/ | |||
package org.apache.tools.ant.taskdefs.optional.unix; | |||
import java.io.File; | |||
import org.apache.tools.ant.BuildException; | |||
import org.apache.tools.ant.taskdefs.Execute; | |||
import org.apache.tools.ant.taskdefs.ExecuteOn; | |||
import org.apache.tools.ant.taskdefs.condition.Os; | |||
import org.apache.tools.ant.types.Commandline; | |||
import org.apache.tools.ant.types.FileSet; | |||
/** | |||
* @author Patrick G. Heck <a href="mailto:gus.heck@olin.edu">gus.heck@olin.edu</a> | |||
* @since Ant 1.6 | |||
* | |||
* @ant.task category="filesystem" | |||
*/ | |||
public abstract class AbstractAccessTask | |||
extends org.apache.tools.ant.taskdefs.ExecuteOn { | |||
/** | |||
* Chmod task for setting file and directory permissions. | |||
*/ | |||
public AbstractAccessTask() { | |||
super.setParallel(true); | |||
super.setSkipEmptyFilesets(true); | |||
} | |||
public void setFile(File src) { | |||
FileSet fs = new FileSet(); | |||
fs.setDir(new File(src.getParent())); | |||
fs.createInclude().setName(src.getName()); | |||
addFileset(fs); | |||
} | |||
public void setDir(File src) { | |||
FileSet fs = new FileSet(); | |||
fs.setDir(new File(src.getParent())); | |||
fs.createInclude().setName(src.getName()); | |||
addFileset(fs); | |||
} | |||
public void setCommand(Commandline cmdl) { | |||
throw new BuildException(taskType + | |||
" doesn\'t support the command attribute", | |||
getLocation()); | |||
} | |||
public void setSkipEmptyFilesets(boolean skip) { | |||
throw new BuildException(taskType + " doesn\'t support the " | |||
+ "skipemptyfileset attribute", | |||
getLocation()); | |||
} | |||
protected boolean isValidOs() { | |||
return Os.isFamily("unix") && super.isValidOs(); | |||
} | |||
} |
@@ -0,0 +1,117 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2002 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in | |||
* the documentation and/or other materials provided with the | |||
* distribution. | |||
* | |||
* 3. The end-user documentation included with the redistribution, if | |||
* any, must include the following acknowlegement: | |||
* "This product includes software developed by the | |||
* Apache Software Foundation (http://www.apache.org/)." | |||
* Alternately, this acknowlegement may appear in the software itself, | |||
* if and wherever such third-party acknowlegements normally appear. | |||
* | |||
* 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||
* Foundation" must not be used to endorse or promote products derived | |||
* from this software without prior written permission. For written | |||
* permission, please contact apache@apache.org. | |||
* | |||
* 5. Products derived from this software may not be called "Apache" | |||
* nor may "Apache" appear in their names without prior written | |||
* permission of the Apache Group. | |||
* | |||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* ==================================================================== | |||
* | |||
* This software consists of voluntary contributions made by many | |||
* individuals on behalf of the Apache Software Foundation. For more | |||
* information on the Apache Software Foundation, please see | |||
* <http://www.apache.org/>. | |||
*/ | |||
/* | |||
* Since the initial version of this file was deveolped on the clock on | |||
* an NSF grant I should say the following boilerplate: | |||
* | |||
* This material is based upon work supported by the National Science | |||
* Foundaton under Grant No. EIA-0196404. Any opinions, findings, and | |||
* conclusions or recommendations expressed in this material are those | |||
* of the author and do not necessarily reflect the views of the | |||
* National Science Foundation. | |||
*/ | |||
package org.apache.tools.ant.taskdefs.optional.unix; | |||
import org.apache.tools.ant.BuildException; | |||
/** | |||
* Chgrp equivalent for unix-like environments. | |||
* | |||
* @author Patrick G. Heck | |||
* <a href="mailto:gus.heck@olin.edu">gus.heck@olin.edu</a> | |||
* | |||
* @since Ant 1.6 | |||
* | |||
* @ant.task category="filesystem" | |||
*/ | |||
public class Chgrp extends AbstractAccessTask { | |||
private boolean haveGroup = false; | |||
/** | |||
* Chgrp task for setting unix group of a file. | |||
*/ | |||
public Chgrp() { | |||
super.setExecutable("chgrp"); | |||
} | |||
/** | |||
* Set the group atribute. | |||
* | |||
* @param group The new group for the file(s) or directory(ies) | |||
*/ | |||
public void setGroup(String group) { | |||
createArg().setValue(group); | |||
haveGroup = true; | |||
} | |||
protected void checkConfiguration() { | |||
if (!haveGroup) { | |||
throw new BuildException("Required attribute group not set in "+ | |||
"chgrp", getLocation()); | |||
} | |||
super.checkConfiguration(); | |||
} | |||
/** | |||
* We don't want to expose the executable atribute, so overide it. | |||
*/ | |||
public void setExecutable(String e) { | |||
throw new BuildException(taskType + | |||
" doesn\'t support the executable attribute", | |||
getLocation()); | |||
} | |||
} |
@@ -0,0 +1,119 @@ | |||
/* | |||
* The Apache Software License, Version 1.1 | |||
* | |||
* Copyright (c) 2002 The Apache Software Foundation. All rights | |||
* reserved. | |||
* | |||
* Redistribution and use in source and binary forms, with or without | |||
* modification, are permitted provided that the following conditions | |||
* are met: | |||
* | |||
* 1. Redistributions of source code must retain the above copyright | |||
* notice, this list of conditions and the following disclaimer. | |||
* | |||
* 2. Redistributions in binary form must reproduce the above copyright | |||
* notice, this list of conditions and the following disclaimer in | |||
* the documentation and/or other materials provided with the | |||
* distribution. | |||
* | |||
* 3. The end-user documentation included with the redistribution, if | |||
* any, must include the following acknowlegement: | |||
* "This product includes software developed by the | |||
* Apache Software Foundation (http://www.apache.org/)." | |||
* Alternately, this acknowlegement may appear in the software itself, | |||
* if and wherever such third-party acknowlegements normally appear. | |||
* | |||
* 4. The names "The Jakarta Project", "Ant", and "Apache Software | |||
* Foundation" must not be used to endorse or promote products derived | |||
* from this software without prior written permission. For written | |||
* permission, please contact apache@apache.org. | |||
* | |||
* 5. Products derived from this software may not be called "Apache" | |||
* nor may "Apache" appear in their names without prior written | |||
* permission of the Apache Group. | |||
* | |||
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED | |||
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES | |||
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | |||
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR | |||
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF | |||
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | |||
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, | |||
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT | |||
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||
* SUCH DAMAGE. | |||
* ==================================================================== | |||
* | |||
* This software consists of voluntary contributions made by many | |||
* individuals on behalf of the Apache Software Foundation. For more | |||
* information on the Apache Software Foundation, please see | |||
* <http://www.apache.org/>. | |||
*/ | |||
/* | |||
* Since the initial version of this file was deveolped on the clock on | |||
* an NSF grant I should say the following boilerplate: | |||
* | |||
* This material is based upon work supported by the National Science | |||
* Foundaton under Grant No. EIA-0196404. Any opinions, findings, and | |||
* conclusions or recommendations expressed in this material are those | |||
* of the author and do not necessarily reflect the views of the | |||
* National Science Foundation. | |||
*/ | |||
package org.apache.tools.ant.taskdefs.optional.unix; | |||
import java.io.File; | |||
import org.apache.tools.ant.BuildException; | |||
/** | |||
* Chown equivalent for unix-like environments. | |||
* | |||
* @author Patrick G. Heck | |||
* <a href="mailto:gus.heck@olin.edu">gus.heck@olin.edu</a> | |||
* | |||
* @since Ant 1.6 | |||
* | |||
* @ant.task category="filesystem" | |||
*/ | |||
public class Chown extends AbstractAccessTask { | |||
private boolean haveOwner = false; | |||
/** | |||
* Chown task for setting file and directory permissions. | |||
*/ | |||
public Chown() { | |||
super.setExecutable("chown"); | |||
} | |||
/** | |||
* Set the owner atribute. | |||
* | |||
* @param owner The new owner for the file(s) or directory(ies) | |||
*/ | |||
public void setOwner(String owner) { | |||
createArg().setValue(owner); | |||
haveOwner = true; | |||
} | |||
protected void checkConfiguration() { | |||
if (!haveOwner) { | |||
throw new BuildException("Required attribute owner not set in" + | |||
" chown", getLocation()); | |||
} | |||
super.checkConfiguration(); | |||
} | |||
/** | |||
* We don't want to expose the executable atribute, so overide it. | |||
*/ | |||
public void setExecutable(String e) { | |||
throw new BuildException(taskType + | |||
" doesn\'t support the executable attribute", | |||
getLocation()); | |||
} | |||
} |