Mercurial > hg > release > thermostat-0.15
changeset 1253:5501717515a7
Make 'foo --help' work like 'help foo'
Reviewed-by: jerboaa
PR1091
author | Omair Majid <omajid@redhat.com> |
---|---|
date | Tue, 17 Sep 2013 18:56:24 -0400 |
parents | 4afcf1274915 |
children | 789a3be5013e |
files | integration-tests/src/test/java/com/redhat/thermostat/itest/CliTest.java launcher/src/main/java/com/redhat/thermostat/launcher/internal/LauncherImpl.java |
diffstat | 2 files changed, 25 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/integration-tests/src/test/java/com/redhat/thermostat/itest/CliTest.java Fri Sep 06 10:51:16 2013 +0200 +++ b/integration-tests/src/test/java/com/redhat/thermostat/itest/CliTest.java Tue Sep 17 18:56:24 2013 -0400 @@ -181,6 +181,21 @@ } @Test + public void testShellHelpArgument() throws Exception { + Spawn shell = spawnThermostat("shell", "--help"); + shell.expectClose(); + + String stdOut = shell.getCurrentStandardOutContents(); + + String[] lines = stdOut.split("\n"); + String usage = lines[0]; + assertTrue(usage.matches("^usage: thermostat shell$")); + String description = lines[1]; + assertTrue(description.matches("^\\s+launches the Thermostat interactive shell$")); + assertTrue(lines[3].matches("thermostat shell")); + } + + @Test public void testShellUnrecognizedArgument() throws Exception { Spawn shell = spawnThermostat("shell", "--foo"); shell.expectClose();
--- a/launcher/src/main/java/com/redhat/thermostat/launcher/internal/LauncherImpl.java Fri Sep 06 10:51:16 2013 +0200 +++ b/launcher/src/main/java/com/redhat/thermostat/launcher/internal/LauncherImpl.java Tue Sep 17 18:56:24 2013 -0400 @@ -83,6 +83,8 @@ */ public class LauncherImpl implements Launcher { + private static final String HELP_COMMAND_NAME = "help"; + private static final Translate<LocaleResources> t = LocaleResources.createLocalizer(); private Logger logger; @@ -211,11 +213,11 @@ } private void runHelpCommand() { - runCommand("help", new String[0], null, false); + runCommand(HELP_COMMAND_NAME, new String[0], null, false); } private void runHelpCommandFor(String cmdName) { - runCommand("help", new String[] { "--", cmdName }, null, false); + runCommand(HELP_COMMAND_NAME, new String[] { "--", cmdName }, null, false); } private void runCommandFromArguments(String[] args, Collection<ActionListener<ApplicationState>> listeners, boolean inShell) { @@ -223,6 +225,12 @@ } private void runCommand(String cmdName, String[] cmdArgs, Collection<ActionListener<ApplicationState>> listeners, boolean inShell) { + // treat 'foo --help' as 'help foo' + if (!cmdName.equals(HELP_COMMAND_NAME) && Arrays.asList(cmdArgs).contains("--help")) { + runCommand(HELP_COMMAND_NAME, new String[] { cmdName } , listeners, inShell); + return; + } + try { parseArgsAndRunCommand(cmdName, cmdArgs, listeners, inShell); } catch (CommandException e) {