You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ma...@apache.org on 2021/05/06 07:54:53 UTC
[maven] branch master updated: [MNG-7032] Evaluate --help and
--version after configuring the logging/color
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 <gn...@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();