Skip to content

Commit 392fd08

Browse files
committed
Remove unused positional [<MODEL>] from diff command
The diff command does not use the positional MODEL argument like other commands. I'd like to do a more involved refactor to make this a little cleaner later, but I want to get this help text and validation in place before that lands.
1 parent f8db34d commit 392fd08

File tree

3 files changed

+22
-1
lines changed

3 files changed

+22
-1
lines changed

smithy-cli/src/main/java/software/amazon/smithy/cli/commands/BuildOptions.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,17 @@ final class BuildOptions implements ArgumentReceiver {
2929

3030
private boolean allowUnknownTraits;
3131
private String output;
32+
private boolean noPositionalArguments;
3233

3334
@Override
3435
public void registerHelp(HelpPrinter printer) {
3536
printer.option(ALLOW_UNKNOWN_TRAITS, null, "Ignore unknown traits when validating models");
3637
printer.param("--output", null, "OUTPUT_PATH",
3738
"Where to write Smithy artifacts, caches, and other files (defaults to './build/smithy').");
38-
printer.positional(MODELS, "Model files and directories to load");
39+
40+
if (!noPositionalArguments) {
41+
printer.positional(MODELS, "Model files and directories to load");
42+
}
3943
}
4044

4145
@Override
@@ -62,4 +66,8 @@ boolean allowUnknownTraits() {
6266
String output() {
6367
return output;
6468
}
69+
70+
void noPositionalArguments(boolean noPositionalArguments) {
71+
this.noPositionalArguments = noPositionalArguments;
72+
}
6573
}

smithy-cli/src/main/java/software/amazon/smithy/cli/commands/DiffCommand.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,10 +90,15 @@ public void registerHelp(HelpPrinter printer) {
9090
protected void configureArgumentReceivers(Arguments arguments) {
9191
super.configureArgumentReceivers(arguments);
9292
arguments.addReceiver(new Options());
93+
arguments.getReceiver(BuildOptions.class).noPositionalArguments(true);
9394
}
9495

9596
@Override
9697
int runWithClassLoader(SmithyBuildConfig config, Arguments arguments, Env env, List<String> positional) {
98+
if (!arguments.getPositional().isEmpty()) {
99+
throw new CliError("Unexpected arguments: " + arguments.getPositional());
100+
}
101+
97102
StandardOptions standardOptions = arguments.getReceiver(StandardOptions.class);
98103
Options options = arguments.getReceiver(Options.class);
99104
ClassLoader classLoader = env.classLoader();

smithy-cli/src/test/java/software/amazon/smithy/cli/commands/BuildCommandTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,4 +108,12 @@ public void projectionUnknownTraitsAreAllowedWithFlag() throws Exception {
108108
public void exceptionsThrownByProjectionsAreDetected() {
109109
// TODO: need to make a plugin throw an exception
110110
}
111+
112+
@Test
113+
public void canHideModelsPositional() {
114+
CliUtils.Result result = CliUtils.runSmithy("diff", "-h");
115+
116+
assertThat(result.code(), equalTo(0));
117+
assertThat(result.stdout(), not(containsString("[<MODELS>]")));
118+
}
111119
}

0 commit comments

Comments
 (0)