diff options
author | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2021-05-27 15:32:01 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@verizonmedia.com> | 2021-05-27 15:32:01 +0200 |
commit | 176b03f359920c26f4b543b00d4665be54d96160 (patch) | |
tree | 2f0b2c519cc22472f45d4cda86219350fd5c8138 /vespa-feed-client-cli | |
parent | c0d5a541c9503c55a9867ff0117c82b056cbf2fb (diff) |
Add verbose option
Diffstat (limited to 'vespa-feed-client-cli')
4 files changed, 16 insertions, 6 deletions
diff --git a/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliArguments.java b/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliArguments.java index 125a27737ef..8855b08b06b 100644 --- a/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliArguments.java +++ b/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliArguments.java @@ -47,6 +47,7 @@ class CliArguments { private static final String ROUTE_OPTION = "route"; private static final String TIMEOUT_OPTION = "timeout"; private static final String TRACE_OPTION = "trace"; + private static final String VERBOSE_OPTION = "verbose"; private static final String VERSION_OPTION = "version"; private static final String STDIN_OPTION = "stdin"; @@ -145,6 +146,8 @@ class CliArguments { : Optional.empty(); } + boolean verboseSpecified() { return has(VERBOSE_OPTION); } + boolean readFeedFromStandardInput() { return has(STDIN_OPTION); } private OptionalInt intValue(String option) throws CliArgumentsException { @@ -253,6 +256,9 @@ class CliArguments { .build()) .addOption(Option.builder() .longOpt(STDIN_OPTION) + .build()) + .addOption(Option.builder() + .longOpt(VERBOSE_OPTION) .build()); } diff --git a/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliClient.java b/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliClient.java index b94ccdce2da..553ae660888 100644 --- a/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliClient.java +++ b/vespa-feed-client-cli/src/main/java/ai/vespa/feed/client/CliClient.java @@ -37,8 +37,9 @@ public class CliClient { } private int run(String[] rawArgs) { + CliArguments cliArgs = null; try { - CliArguments cliArgs = CliArguments.fromRawArgs(rawArgs); + cliArgs = CliArguments.fromRawArgs(rawArgs); if (cliArgs.helpSpecified()) { cliArgs.printHelp(systemOut); return 0; @@ -52,7 +53,8 @@ public class CliClient { } return 0; } catch (CliArguments.CliArgumentsException | IOException e) { - return handleException(e); + boolean verbose = cliArgs != null && cliArgs.verboseSpecified(); + return handleException(verbose, e); } } @@ -93,11 +95,11 @@ public class CliClient { cliArgs.readFeedFromStandardInput() ? systemIn : Files.newInputStream(cliArgs.inputFile().get())); } - private int handleException(Exception e) { return handleException(e.getMessage(), e); } + private int handleException(boolean verbose, Exception e) { return handleException(verbose, e.getMessage(), e); } - private int handleException(String message, Exception exception) { + private int handleException(boolean verbose, String message, Exception exception) { systemError.println(message); - if (debugMode()) { + if (debugMode() || verbose) { exception.printStackTrace(systemError); } return 1; diff --git a/vespa-feed-client-cli/src/test/java/ai/vespa/feed/client/CliArgumentsTest.java b/vespa-feed-client-cli/src/test/java/ai/vespa/feed/client/CliArgumentsTest.java index 14b69f20ad0..a99399e638d 100644 --- a/vespa-feed-client-cli/src/test/java/ai/vespa/feed/client/CliArgumentsTest.java +++ b/vespa-feed-client-cli/src/test/java/ai/vespa/feed/client/CliArgumentsTest.java @@ -23,7 +23,7 @@ class CliArgumentsTest { "--max-streams-per-connection=128", "--certificate=cert.pem", "--private-key=key.pem", "--ca-certificates=ca-certs.pem", "--disable-ssl-hostname-verification", "--header=\"My-Header: my-value\"", "--header", "Another-Header: another-value", "--benchmark", - "--route=myroute", "--timeout=0.125", "--trace=9"}); + "--route=myroute", "--timeout=0.125", "--trace=9", "--verbose"}); assertEquals(URI.create("https://vespa.ai:4443/"), args.endpoint()); assertEquals(Paths.get("feed.json"), args.inputFile().get()); assertEquals(10, args.connections().getAsInt()); @@ -41,6 +41,7 @@ class CliArgumentsTest { assertEquals("myroute", args.route().get()); assertEquals(Duration.ofMillis(125), args.timeout().get()); assertEquals(9, args.traceLevel().getAsInt()); + assertTrue(args.verboseSpecified()); } @Test diff --git a/vespa-feed-client-cli/src/test/resources/help.txt b/vespa-feed-client-cli/src/test/resources/help.txt index 56441ee0728..29f24e8c672 100644 --- a/vespa-feed-client-cli/src/test/resources/help.txt +++ b/vespa-feed-client-cli/src/test/resources/help.txt @@ -15,4 +15,5 @@ Vespa feed client --stdin --timeout <arg> --trace <arg> + --verbose --version |