Refactor display of --help/-h to be common

This code was identical in two callers, make it common.

Change-Id: Ieb95a0ed2fd1f504b92ca6a72ea3a6d1bd5ae172
This commit is contained in:
Shawn O. Pearce
2012-04-04 15:26:02 -07:00
parent 2a9ced1f9e
commit 96511a9ce4
3 changed files with 14 additions and 16 deletions

View File

@@ -56,14 +56,8 @@ public abstract class AbstractProgram {
} }
if (clp.wasHelpRequestedByOption()) { if (clp.wasHelpRequestedByOption()) {
final StringWriter msg = new StringWriter(); StringWriter msg = new StringWriter();
msg.write(getName()); clp.printDetailedUsage(getName(), msg);
clp.printSingleLineUsage(msg, null);
msg.write('\n');
msg.write('\n');
clp.printUsage(msg, null);
msg.write('\n');
System.err.println(msg.toString()); System.err.println(msg.toString());
return 1; return 1;
} }

View File

@@ -166,14 +166,8 @@ public abstract class BaseCommand implements Command {
} }
if (clp.wasHelpRequestedByOption()) { if (clp.wasHelpRequestedByOption()) {
final StringWriter msg = new StringWriter(); StringWriter msg = new StringWriter();
msg.write(commandName); clp.printDetailedUsage(commandName, msg);
clp.printSingleLineUsage(msg, null);
msg.write('\n');
msg.write('\n');
clp.printUsage(msg, null);
msg.write('\n');
msg.write(usage()); msg.write(usage());
throw new UnloggedFailure(1, msg.toString()); throw new UnloggedFailure(1, msg.toString());
} }

View File

@@ -48,6 +48,7 @@ import org.kohsuke.args4j.spi.BooleanOptionHandler;
import org.kohsuke.args4j.spi.OptionHandler; import org.kohsuke.args4j.spi.OptionHandler;
import org.kohsuke.args4j.spi.Setter; import org.kohsuke.args4j.spi.Setter;
import java.io.StringWriter;
import java.io.Writer; import java.io.Writer;
import java.lang.annotation.Annotation; import java.lang.annotation.Annotation;
import java.util.ArrayList; import java.util.ArrayList;
@@ -105,6 +106,15 @@ public class CmdLineParser {
parser.printUsage(out, rb); parser.printUsage(out, rb);
} }
public void printDetailedUsage(String name, StringWriter out) {
out.write(name);
printSingleLineUsage(out, null);
out.write('\n');
out.write('\n');
printUsage(out, null);
out.write('\n');
}
public boolean wasHelpRequestedByOption() { public boolean wasHelpRequestedByOption() {
return parser.help.value; return parser.help.value;
} }