ehatcher 02/02/01 14:27:38
Modified: src/main/org/apache/tools/ant Main.java
docs/manual running.html
Log:
Add -propertyfile command-line option.
Revision Changes Path
1.54 +42 -2 jakarta-ant/src/main/org/apache/tools/ant/Main.java
Index: Main.java
===================================================================
RCS file: /home/cvs/jakarta-ant/src/main/org/apache/tools/ant/Main.java,v
retrieving revision 1.53
retrieving revision 1.54
diff -u -r1.53 -r1.54
--- Main.java 10 Jan 2002 11:21:19 -0000 1.53
+++ Main.java 1 Feb 2002 22:27:38 -0000 1.54
@@ -55,6 +55,7 @@
package org.apache.tools.ant;
import java.io.File;
+import java.io.FileInputStream;
import java.io.PrintStream;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -100,6 +101,9 @@
/** Names of classes to add as listeners to project */
private Vector listeners = new Vector(5);
+
+ /** File names of property files to load on startup */
+ private Vector propertyFiles = new Vector(5);
/**
* The Ant logger class. There may be only one logger. It will have the
@@ -294,6 +298,16 @@
} else {
searchForThis = DEFAULT_BUILD_FILENAME;
}
+ } else if (arg.startsWith("-propertyfile")) {
+ try {
+ propertyFiles.addElement(args[i+1]);
+ i++;
+ } catch (ArrayIndexOutOfBoundsException aioobe) {
+ String msg = "You must specify a property filename when
" +
+ "using the -propertyfile argument";
+ System.out.println(msg);
+ return;
+ }
} else if (arg.startsWith("-")) {
// we don't have any more args to recognize!
String msg = "Unknown argument: " + arg;
@@ -304,9 +318,8 @@
// if it's no other arg, it may be the target
targets.addElement(arg);
}
-
}
-
+
// if buildFile was not specified on the command line,
if (buildFile == null) {
// but -find then search for it
@@ -332,6 +345,31 @@
throw new BuildException("Build failed");
}
+ // Load the property files specified by -propertyfile
+ for (int propertyFileIndex=0;
+ propertyFileIndex < propertyFiles.size();
+ propertyFileIndex++) {
+ String filename = (String)
propertyFiles.elementAt(propertyFileIndex);
+ Properties props = new Properties();
+ try {
+ FileInputStream fis = new FileInputStream(filename);
+ props.load(fis);
+ }
+ catch (IOException e) {
+ System.out.println("Could not load property file "
+ + filename + ": " + e.getMessage());
+ }
+
+ // ensure that -D properties take precedence
+ Enumeration propertyNames = props.propertyNames();
+ while (propertyNames.hasMoreElements()) {
+ String name = (String) propertyNames.nextElement();
+ if (definedProps.getProperty(name) == null) {
+ definedProps.put(name, props.getProperty(name));
+ }
+ }
+ }
+
readyToRun = true;
}
@@ -576,6 +614,8 @@
msg.append(" -listener <classname> add an instance of class as a
project listener" + lSep);
msg.append(" -buildfile <file> use given buildfile" + lSep);
msg.append(" -D<property>=<value> use value for given property" +
lSep);
+ msg.append(" -propertyfile <name> load all properties from file
with -D" + lSep);
+ msg.append(" properties taking precedence" +
lSep);
msg.append(" -find <file> search for buildfile towards
the root of the" + lSep);
msg.append(" filesystem and use it" + lSep);
System.out.println(msg.toString());
1.9 +16 -13 jakarta-ant/docs/manual/running.html
Index: running.html
===================================================================
RCS file: /home/cvs/jakarta-ant/docs/manual/running.html,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- running.html 10 Jan 2002 08:48:28 -0000 1.8
+++ running.html 1 Feb 2002 22:27:38 -0000 1.9
@@ -62,19 +62,22 @@
<h3><a name="options">Command-line Options Summary</a></h3>
<pre>ant [options] [target [target2 [target3] ...]]
Options:
--help print this message
--projecthelp print project help information
--version print the version information and exit
--quiet be extra quiet
--verbose be extra verbose
--debug print debugging information
--emacs produce logging information without adornments
--logfile <i>file</i> use given file for log output
--logger <i>classname</i> the class that is to perform logging
--listener <i>classname</i> add an instance of class as a project listener
--buildfile <i>file</i> use specified buildfile
--find <i>file</i> search for buildfile towards the root of the
filesystem and use the first one found
--D<i>property</i>=<i>value</i> set <i>property</i> to <i>value</i>
+ -help print this message
+ -projecthelp print project help information
+ -version print the version information and exit
+ -quiet be extra quiet
+ -verbose be extra verbose
+ -debug print debugging information
+ -emacs produce logging information without adornments
+ -logfile <file> use given file for log
+ -logger <classname> the class which is to perform logging
+ -listener <classname> add an instance of class as a project listener
+ -buildfile <file> use given buildfile
+ -D<property>=<value> use value for given property
+ -propertyfile <name> load all properties from file with -D
+ properties taking precedence
+ -find <file> search for buildfile towards the root of the
+ filesystem and use it
</pre>
<p>For more information about <code>-logger</code> and
<code>-listener</code> see the section <a
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>