This is an automated email from the ASF dual-hosted git repository. martinkanters pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/maven.git
The following commit(s) were added to refs/heads/master by this push: new 3e91767 [MNG-7032] Evaluate --help and --version after configuring the logging/color 3e91767 is described below commit 3e917677e484067b853eaa4a6de44ebcf5a988de Author: Guillaume Nodet <gno...@gmail.com> AuthorDate: Thu Jan 21 17:13:40 2021 +0100 [MNG-7032] Evaluate --help and --version after configuring the logging/color --- .../main/java/org/apache/maven/cli/MavenCli.java | 8 ++++- .../java/org/apache/maven/cli/MavenCliTest.java | 35 ++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java index 595f3e7..21b939e 100644 --- a/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java +++ b/maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java @@ -173,6 +173,8 @@ public class MavenCli private Map<String, ConfigurationProcessor> configurationProcessors; + private CLIManager cliManager; + public MavenCli() { this( null ); @@ -285,6 +287,7 @@ public class MavenCli cli( cliRequest ); properties( cliRequest ); logging( cliRequest ); + informativeCommands( cliRequest ); version( cliRequest ); localContainer = container( cliRequest ); commands( cliRequest ); @@ -374,7 +377,7 @@ public class MavenCli // slf4jLogger = new Slf4jStdoutLogger(); - CLIManager cliManager = new CLIManager(); + cliManager = new CLIManager(); List<String> args = new ArrayList<>(); CommandLine mavenConfig = null; @@ -424,7 +427,10 @@ public class MavenCli cliManager.displayHelp( System.out ); throw e; } + } + private void informativeCommands( CliRequest cliRequest ) throws ExitException + { if ( cliRequest.commandLine.hasOption( CLIManager.HELP ) ) { cliManager.displayHelp( System.out ); diff --git a/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java b/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java index cf243fb..164b85a 100644 --- a/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java +++ b/maven-embedder/src/test/java/org/apache/maven/cli/MavenCliTest.java @@ -37,7 +37,10 @@ import static org.mockito.Mockito.inOrder; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; +import java.io.ByteArrayOutputStream; import java.io.File; +import java.io.PrintStream; +import java.nio.charset.StandardCharsets; import java.util.Collections; import java.util.List; @@ -446,6 +449,38 @@ public class MavenCliTest is( "." + File.separatorChar + "custom2" ) ); } + /** + * MNG-7032: Disable colours for {@code --version} if {@code --batch-mode} is also given. + * @throws Exception cli invocation. + */ + @Test + public void testVersionStringWithoutAnsi() throws Exception + { + // given + // - request with version and batch mode + CliRequest cliRequest = new CliRequest( new String[] { + "--version", + "--batch-mode" + }, null ); + ByteArrayOutputStream systemOut = new ByteArrayOutputStream(); + PrintStream oldOut = System.out; + System.setOut( new PrintStream( systemOut ) ); + + // when + try { + cli.cli( cliRequest ); + } catch ( MavenCli.ExitException exitException ) { + // expected + } finally { + // restore sysout + System.setOut( oldOut ); + } + String versionOut = new String( systemOut.toByteArray(), StandardCharsets.UTF_8 ); + + // then + assertEquals( MessageUtils.stripAnsiCodes( versionOut ), versionOut ); + } + private MavenProject createMavenProject( String groupId, String artifactId ) { MavenProject project = new MavenProject();