pbwest 2004/04/15 00:09:40
Modified: src/java/org/apache/fop/configuration Tag:
FOP_0-20-0_Alt-Design CLI_Options.java
Log:
Added usage rport using org.apache.commons.cli.HelpFormatter
Revision Changes Path
No revision
No revision
1.1.2.3 +42 -16
xml-fop/src/java/org/apache/fop/configuration/Attic/CLI_Options.java
Index: CLI_Options.java
===================================================================
RCS file:
/home/cvs/xml-fop/src/java/org/apache/fop/configuration/Attic/CLI_Options.java,v
retrieving revision 1.1.2.2
retrieving revision 1.1.2.3
diff -u -r1.1.2.2 -r1.1.2.3
--- CLI_Options.java 14 Mar 2004 02:44:53 -0000 1.1.2.2
+++ CLI_Options.java 15 Apr 2004 07:09:40 -0000 1.1.2.3
@@ -20,11 +20,14 @@
package org.apache.fop.configuration;
import java.io.FileNotFoundException;
+import java.io.PrintWriter;
+import java.io.StringWriter;
import java.util.Locale;
import java.util.logging.Level;
// fop
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
+import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.OptionBuilder;
import org.apache.commons.cli.OptionGroup;
@@ -64,17 +67,17 @@
Options options = new Options();
OptionBuilder.withArgName("help");
OptionBuilder.withLongOpt("help");
- OptionBuilder.withDescription("Describe usage");
+ OptionBuilder.withDescription("Describe usage and exit");
options.addOption(OptionBuilder.create("?"));
// The mutually exclusive verbosity group includes the -d and -q flags
OptionGroup verbosity = new OptionGroup();
OptionBuilder.withArgName("debug mode");
OptionBuilder.withLongOpt("full-error-dump");
- OptionBuilder.withDescription("Debug mode: verbose reporting");
+ OptionBuilder.withDescription("Verbosity: verbose reporting");
verbosity.addOption(OptionBuilder.create("d"));
OptionBuilder.withArgName("quiet mode");
OptionBuilder.withLongOpt("quiet");
- OptionBuilder.withDescription("Quiet mode: report errors only");
+ OptionBuilder.withDescription("Verbosity: report errors only");
verbosity.addOption(OptionBuilder.create("q"));
verbosity.setRequired(false);
// Add verbosity to options
@@ -102,12 +105,14 @@
OptionBuilder.withArgName("fo:file");
OptionBuilder.withLongOpt("fo");
OptionBuilder.hasArg();
- OptionBuilder.withDescription("XSL-FO input file");
+ OptionBuilder.withDescription("Input:XSL-FO input file");
input.addOption(OptionBuilder.create("fo"));
OptionBuilder.withArgName("xml file");
OptionBuilder.withLongOpt("xml");
OptionBuilder.hasArg();
- OptionBuilder.withDescription("XML source file for generating XSL-FO
input");
+ OptionBuilder.withDescription(
+ "Input:XML source file for generating XSL-FO input."
+ + " Requires -xsl");
input.addOption(
OptionBuilder.create("xml"));
// Add the input group to the options
@@ -134,55 +139,57 @@
OptionGroup output = new OptionGroup();
OptionBuilder.withArgName("screen renderer");
OptionBuilder.withLongOpt("awt");
- OptionBuilder.withDescription("Input will be renderered to display");
+ OptionBuilder.withDescription("Output:Renderered to display using AWT");
output.addOption(OptionBuilder.create("awt"));
OptionBuilder.withArgName("pdf output file");
OptionBuilder.withLongOpt("pdf");
OptionBuilder.hasArg();
- OptionBuilder.withDescription("Input will be rendered as PDF to named
file");
+ OptionBuilder.withDescription("Output:Rendered as PDF to named file");
output.addOption(OptionBuilder.create("pdf"));
OptionBuilder.withArgName("postscript output file");
OptionBuilder.withLongOpt("ps");
OptionBuilder.hasArg();
- OptionBuilder.withDescription("Input will be rendered as Postscript to
named file");
+ OptionBuilder.withDescription("Ouput:Rendered as Postscript to named file");
output.addOption(OptionBuilder.create("ps"));
OptionBuilder.withArgName("pcl output file");
OptionBuilder.withLongOpt("pcl");
OptionBuilder.hasArg();
- OptionBuilder.withDescription("Input will be rendered as PCL to named
file");
+ OptionBuilder.withDescription("Output:Rendered as PCL to named file");
output.addOption(OptionBuilder.create("pcl"));
OptionBuilder.withArgName("rtf output file");
OptionBuilder.withLongOpt("rtf");
OptionBuilder.hasArg();
- OptionBuilder.withDescription("Input will be rendered as RTF to named
file");
+ OptionBuilder.withDescription("Output:Rendered as RTF to named file");
output.addOption(OptionBuilder.create("rtf"));
OptionBuilder.withArgName("mif output file");
OptionBuilder.withLongOpt("mif");
OptionBuilder.hasArg();
- OptionBuilder.withDescription("Input will be rendered as MIF to named
file");
+ OptionBuilder.withDescription("Output:Rendered as MIF to named file");
output.addOption(OptionBuilder.create("mif"));
OptionBuilder.withArgName("svg output file");
OptionBuilder.withLongOpt("svg");
OptionBuilder.hasArg();
- OptionBuilder.withDescription("Input will be rendered as SVG to named
file");
+ OptionBuilder.withDescription("Output:Rendered as SVG to named file");
output.addOption(OptionBuilder.create("svg"));
OptionBuilder.withArgName("text output file");
OptionBuilder.withLongOpt("plain-text");
OptionBuilder.hasArg();
- OptionBuilder.withDescription("Input will be rendered as plain text to
named file");
+ OptionBuilder.withDescription("Output:Rendered as plain text to named
file");
output.addOption(OptionBuilder.create("txt"));
OptionBuilder.withArgName("area tree output file");
OptionBuilder.withLongOpt("area-tree");
OptionBuilder.hasArg();
- OptionBuilder.withDescription("Area tree will be output as XML to named
file");
+ OptionBuilder.withDescription("Output:Area tree will be output as XML to
named file");
output.addOption(OptionBuilder.create("at"));
OptionBuilder.withArgName("help");
OptionBuilder.withLongOpt("print");
OptionBuilder.hasOptionalArg();
- OptionBuilder.withDescription("Input will be rendered and sent to the
printer. "
+ OptionBuilder.withDescription("Output:Rendered to the printer. "
+ "Requires extra arguments to the \"java\" command. "
+ "See options with \"-print help\".");
output.addOption(OptionBuilder.create("print"));
+ // Add the ouput group to the options
+ options.addOptionGroup(output);
// -s option relevant only to -at area tree output. Again, no way
// to express this directly
@@ -230,6 +237,25 @@
//Fop.setLoggingLevel(Level.CONFIG);
log.setLevel(Level.CONFIG);
}
+ }
+ if (cli.hasOption("?")) {
+ StringWriter helptext = new StringWriter();
+ HelpFormatter help = new HelpFormatter();
+ help.printHelp(new PrintWriter(helptext),
+ HelpFormatter.DEFAULT_WIDTH,
+ "Fop", "", options,
+ HelpFormatter.DEFAULT_LEFT_PAD,
+ HelpFormatter.DEFAULT_DESC_PAD,
+ "Any arguments remaining on command line after switches " +
+ "are processed is interpreted as:\n" +
+ "<fo file> <pdf file> if no input or output specified\n"+
+ "or <fo file> if no input specified\n" +
+ "or <pdf file> if no output specified\n\n" +
+ "Verbosity options are mutually exclusive\n" +
+ "Input options are mutually exclusive\n" +
+ "Output options are mutually exclusive");
+ log.info(helptext.toString());
+ throw new FOPException("Help only");
}
if (cli.hasOption("c")) {
configuration.put("userConfigFileName", cli.getOptionValue("c"));
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]