New option -quiet for all commands
diff --git a/org.jacoco.cli.test/src/org/jacoco/cli/internal/MainTest.java b/org.jacoco.cli.test/src/org/jacoco/cli/internal/MainTest.java
index aa949cf..b60780c 100644
--- a/org.jacoco.cli.test/src/org/jacoco/cli/internal/MainTest.java
+++ b/org.jacoco.cli.test/src/org/jacoco/cli/internal/MainTest.java
@@ -64,4 +64,14 @@
out);
}
+ @Test
+ public void should_not_print_any_output_when_quiet_option_is_given()
+ throws Exception {
+ execute("version", "-quiet");
+
+ assertOk();
+ assertNoOutput(out);
+ assertNoOutput(err);
+ }
+
}
diff --git a/org.jacoco.cli/src/org/jacoco/cli/internal/Command.java b/org.jacoco.cli/src/org/jacoco/cli/internal/Command.java
index 5e83b8b..06a6cea 100644
--- a/org.jacoco.cli/src/org/jacoco/cli/internal/Command.java
+++ b/org.jacoco.cli/src/org/jacoco/cli/internal/Command.java
@@ -33,6 +33,12 @@
public boolean help = false;
/**
+ * Flag whether output to stdout should be suppressed.
+ */
+ @Option(name = "-quiet", usage = "suppress all output on stdout")
+ public boolean quiet = false;
+
+ /**
* @return Short description of the command.
*/
public abstract String description();
diff --git a/org.jacoco.cli/src/org/jacoco/cli/internal/Main.java b/org.jacoco.cli/src/org/jacoco/cli/internal/Main.java
index 50c9621..8c6f3be 100644
--- a/org.jacoco.cli/src/org/jacoco/cli/internal/Main.java
+++ b/org.jacoco.cli/src/org/jacoco/cli/internal/Main.java
@@ -11,7 +11,9 @@
*******************************************************************************/
package org.jacoco.cli.internal;
+import java.io.IOException;
import java.io.PrintWriter;
+import java.io.Writer;
import org.kohsuke.args4j.Argument;
import org.kohsuke.args4j.CmdLineException;
@@ -21,6 +23,22 @@
*/
public class Main extends Command {
+ private static final PrintWriter NUL = new PrintWriter(new Writer() {
+
+ @Override
+ public void write(final char[] arg0, final int arg1, final int arg2)
+ throws IOException {
+ }
+
+ @Override
+ public void flush() throws IOException {
+ }
+
+ @Override
+ public void close() throws IOException {
+ }
+ });
+
private final String[] args;
Main(final String... args) {
@@ -41,7 +59,7 @@
}
@Override
- public int execute(final PrintWriter out, final PrintWriter err)
+ public int execute(PrintWriter out, final PrintWriter err)
throws Exception {
final CommandParser mainParser = new CommandParser(this);
@@ -57,12 +75,18 @@
if (help) {
printHelp(out);
return 0;
- } else if (command.help) {
+ }
+
+ if (command.help) {
command.printHelp(out);
return 0;
- } else {
- return command.execute(out, err);
}
+
+ if (command.quiet) {
+ out = NUL;
+ }
+
+ return command.execute(out, err);
}
/**