|
1 | 1 | package se.mwthinker; |
2 | 2 |
|
| 3 | +import org.apache.commons.lang3.SystemUtils; |
3 | 4 | import org.jline.consoleui.elements.ConfirmChoice; |
4 | 5 | import org.jline.consoleui.prompt.ConsolePrompt; |
5 | 6 | import org.jline.consoleui.prompt.PromptResultItemIF; |
|
19 | 20 |
|
20 | 21 | @SuppressWarnings({"SpellCheckingInspection", "java:S106"}) |
21 | 22 | @Command(name = "cppgen", |
22 | | - mixinStandardHelpOptions = true, |
23 | 23 | description = "C++ generator using CMake" |
24 | 24 | ) |
25 | 25 | public class GeneratorCli implements Closeable, Flushable { |
@@ -53,6 +53,9 @@ public class GeneratorCli implements Closeable, Flushable { |
53 | 53 | @Option(names = { "-v", "--version" }, versionHelp = true, description = "Display version info.") |
54 | 54 | private boolean versionRequested = false; |
55 | 55 |
|
| 56 | + @Option(names = { "-h", "--help" }, usageHelp = true, description = "Display this help message.") |
| 57 | + private boolean help = false; |
| 58 | + |
56 | 59 | private Terminal terminal; |
57 | 60 |
|
58 | 61 | static void main(String[] args) { |
@@ -85,13 +88,11 @@ public void run(String[] args) { |
85 | 88 | try { |
86 | 89 | commandLine.parseArgs(args); |
87 | 90 | } catch (CommandLine.ParameterException e) { |
88 | | - builder.createText() |
89 | | - .addLine("Argument error: " + e.getMessage()) |
90 | | - .addPrompt(); |
| 91 | + System.err.println("Argument error: " + e.getMessage()); |
91 | 92 | System.exit(2); |
92 | 93 | } |
93 | 94 |
|
94 | | - if (commandLine.isUsageHelpRequested()) { |
| 95 | + if (help) { |
95 | 96 | commandLine.usage(System.out); |
96 | 97 | System.exit(0); |
97 | 98 | } else if (versionRequested) { |
@@ -138,13 +139,17 @@ private void interactivePrompt(ConsolePrompt prompt, PromptBuilder builder) { |
138 | 139 | .name("cmake") |
139 | 140 | .message("Run cmake after generation?") |
140 | 141 | .defaultValue(ConfirmChoice.ConfirmationValue.NO) |
141 | | - .addPrompt() |
142 | | - .createConfirmPromp() |
143 | | - .name("open") |
144 | | - .message("Open Visual Studio solution?") |
145 | | - .defaultValue(ConfirmChoice.ConfirmationValue.NO) |
146 | | - .addPrompt() |
147 | | - .createConfirmPromp() |
| 142 | + .addPrompt(); |
| 143 | + |
| 144 | + if (SystemUtils.IS_OS_WINDOWS) { |
| 145 | + builder.createConfirmPromp() |
| 146 | + .name("open") |
| 147 | + .message("Open Visual Studio solution?") |
| 148 | + .defaultValue(ConfirmChoice.ConfirmationValue.NO) |
| 149 | + .addPrompt(); |
| 150 | + } |
| 151 | + |
| 152 | + builder.createConfirmPromp() |
148 | 153 | .name("verbose") |
149 | 154 | .message("Show verbose output?") |
150 | 155 | .defaultValue(ConfirmChoice.ConfirmationValue.NO) |
|
0 commit comments