variables when resolveexecutable = true. Thanks to Stefan for having already written the path-searching code. git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@276847 13f79535-47bb-0310-9956-ffa450edef68master
@@ -50,6 +50,9 @@ Other changes: | |||||
* It is now possible to specify the pattern created/parsed by <checksum>. | * It is now possible to specify the pattern created/parsed by <checksum>. | ||||
Bugzilla Report 16539. | Bugzilla Report 16539. | ||||
* Added searchpath attribute to <exec> for searching path variable(s) | |||||
when resolveexecutable = true. | |||||
Changes from Ant 1.6.2 to current Ant 1.6 CVS version | Changes from Ant 1.6.2 to current Ant 1.6 CVS version | ||||
===================================================== | ===================================================== | ||||
@@ -212,15 +212,23 @@ or the task will fail as follows: | |||||
<td align="center" valign="top">No, default is <i>true</i></td> | <td align="center" valign="top">No, default is <i>true</i></td> | ||||
</tr> | </tr> | ||||
<tr> | <tr> | ||||
<td valign="top">resolveExecutable</td> | |||||
<td valign="top">resolveexecutable</td> | |||||
<td valign="top">When this attribute is true, the name of the executable | <td valign="top">When this attribute is true, the name of the executable | ||||
if resolved firstly against the project basedir and | |||||
is resolved firstly against the project basedir and | |||||
if that does not exist, against the execution | if that does not exist, against the execution | ||||
directory if specified. On Unix systems, if you only | directory if specified. On Unix systems, if you only | ||||
want to allow execution of commands in the user's path, | want to allow execution of commands in the user's path, | ||||
set this to false. <em>since Ant 1.6</em></td> | set this to false. <em>since Ant 1.6</em></td> | ||||
<td align="center" valign="top">No, default is <i>false</i></td> | <td align="center" valign="top">No, default is <i>false</i></td> | ||||
</tr> | </tr> | ||||
<tr> | |||||
<td valign="top">searchpath</td> | |||||
<td valign="top">When this attribute is true nested, then | |||||
system path environment variables will | |||||
be searched when resolving the location | |||||
of the executable. <em>since Ant 1.6.3</em></td> | |||||
<td align="center" valign="top">No, default is <i>false</i></td> | |||||
</tr> | |||||
</table> | </table> | ||||
<h3>Examples</h3> | <h3>Examples</h3> | ||||
<blockquote> | <blockquote> | ||||
@@ -51,6 +51,7 @@ public class ExecTask extends Task { | |||||
private boolean failIfExecFails = true; | private boolean failIfExecFails = true; | ||||
private String executable; | private String executable; | ||||
private boolean resolveExecutable = false; | private boolean resolveExecutable = false; | ||||
private boolean searchPath = false; | |||||
private boolean spawn = false; | private boolean spawn = false; | ||||
private boolean incompatibleWithSpawn = false; | private boolean incompatibleWithSpawn = false; | ||||
@@ -260,6 +261,16 @@ public class ExecTask extends Task { | |||||
this.resolveExecutable = resolveExecutable; | this.resolveExecutable = resolveExecutable; | ||||
} | } | ||||
/** | |||||
* Sets a flag indicating whether to search nested, then | |||||
* system PATH environment variables for the executable. | |||||
* | |||||
* @param searchPath if true, search PATHs | |||||
*/ | |||||
public void setSearchPath(boolean searchPath) { | |||||
this.searchPath = searchPath; | |||||
} | |||||
/** | /** | ||||
* Indicates whether to attempt to resolve the executable to a | * Indicates whether to attempt to resolve the executable to a | ||||
* file | * file | ||||
@@ -345,6 +356,7 @@ public class ExecTask extends Task { | |||||
* Add a <CODE>RedirectorElement</CODE> to this task. | * Add a <CODE>RedirectorElement</CODE> to this task. | ||||
* | * | ||||
* @param redirectorElement <CODE>RedirectorElement</CODE>. | * @param redirectorElement <CODE>RedirectorElement</CODE>. | ||||
* @since Ant 1.6.2 | |||||
*/ | */ | ||||
public void addConfiguredRedirector(RedirectorElement redirectorElement) { | public void addConfiguredRedirector(RedirectorElement redirectorElement) { | ||||
if (this.redirectorElement != null) { | if (this.redirectorElement != null) { | ||||
@@ -444,7 +456,7 @@ public class ExecTask extends Task { | |||||
*/ | */ | ||||
public void execute() throws BuildException { | public void execute() throws BuildException { | ||||
File savedDir = dir; // possibly altered in prepareExec | File savedDir = dir; // possibly altered in prepareExec | ||||
cmdl.setExecutable(resolveExecutable(executable, false)); | |||||
cmdl.setExecutable(resolveExecutable(executable, searchPath)); | |||||
checkConfiguration(); | checkConfiguration(); | ||||
if (isValidOs()) { | if (isValidOs()) { | ||||
try { | try { | ||||