Catch option error during execution too, since OptionSet is passed there

This commit is contained in:
Ryan Ernst 2016-03-04 12:11:25 -08:00
parent 209da28bb2
commit 8321d7c5c2
1 changed files with 6 additions and 2 deletions

View File

@ -56,7 +56,7 @@ public abstract class Command {
options = parser.parse(args);
} catch (OptionException e) {
printHelp(terminal);
terminal.println(Terminal.Verbosity.SILENT, "ERROR: " + e.getMessage());
terminal.println("ERROR: " + e.getMessage());
return ExitCodes.USAGE;
}
@ -69,7 +69,7 @@ public abstract class Command {
if (options.has(verboseOption)) {
// mutually exclusive, we can remove this with jopt-simple 5.0, which natively supports it
printHelp(terminal);
terminal.println(Terminal.Verbosity.SILENT, "ERROR: Cannot specify -s and -v together");
terminal.println("ERROR: Cannot specify -s and -v together");
return ExitCodes.USAGE;
}
terminal.setVerbosity(Terminal.Verbosity.SILENT);
@ -81,6 +81,10 @@ public abstract class Command {
try {
return execute(terminal, options);
} catch (OptionException e) {
printHelp(terminal);
terminal.println(Terminal.Verbosity.SILENT, "ERROR: " + e.getMessage());
return ExitCodes.USAGE;
} catch (UserError e) {
terminal.println(Terminal.Verbosity.SILENT, "ERROR: " + e.getMessage());
return e.exitCode;