You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2021/06/30 20:30:57 UTC

[maven] 01/02: [MNG-7080] Add a --color option to simplify color support

This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch 3.8.x/jansi-and-stuff
in repository https://gitbox.apache.org/repos/asf/maven.git

commit f98e632108f2b9496e306dc4630fa24ca5ca45b9
Author: Guillaume Nodet <gn...@gmail.com>
AuthorDate: Thu Jan 21 18:22:18 2021 +0100

    [MNG-7080] Add a --color option to simplify color support
---
 maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java     | 4 ++++
 maven-embedder/src/main/java/org/apache/maven/cli/MavenCli.java       | 2 ++
 .../test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java   | 4 +++-
 3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java b/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
index 1e95010..a0d54d3 100644
--- a/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
+++ b/maven-embedder/src/main/java/org/apache/maven/cli/CLIManager.java
@@ -103,6 +103,8 @@ public class CLIManager
 
     public static final String NO_TRANSFER_PROGRESS = "ntp";
 
+    public static final String COLOR = "color";
+
     protected Options options;
 
     @SuppressWarnings( { "static-access", "checkstyle:linelength" } )
@@ -149,6 +151,8 @@ public class CLIManager
         options.addOption( Option.builder( "cpu" ).longOpt( "check-plugin-updates" ).desc( "Ineffective, only kept for backward compatibility" ).build() );
         options.addOption( Option.builder( "up" ).longOpt( "update-plugins" ).desc( "Ineffective, only kept for backward compatibility" ).build() );
         options.addOption( Option.builder( "npu" ).longOpt( "no-plugin-updates" ).desc( "Ineffective, only kept for backward compatibility" ).build() );
+
+        options.addOption( Option.builder().longOpt( COLOR ).hasArg().desc( "Defines the color mode of the output. Available options are auto/always/never" ).build() );
     }
 
     public CommandLine parse( String[] args )
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 9c7c4d2..474a139 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
@@ -113,6 +113,7 @@ import java.util.StringTokenizer;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import static org.apache.maven.cli.CLIManager.COLOR;
 import static org.apache.maven.cli.ResolveFile.resolveFile;
 import static org.apache.maven.shared.utils.logging.MessageUtils.buffer;
 
@@ -504,6 +505,7 @@ public class MavenCli
 
         // LOG COLOR
         String styleColor = cliRequest.getUserProperties().getProperty( STYLE_COLOR_PROPERTY, "auto" );
+        styleColor = cliRequest.commandLine.getOptionValue( COLOR, styleColor );
         if ( "always".equals( styleColor ) )
         {
             MessageUtils.setColorEnabled( true );
diff --git a/maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java b/maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java
index 2c82a72..7b13606 100644
--- a/maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java
+++ b/maven-embedder/src/test/java/org/apache/maven/cli/CLIManagerDocumentationTest.java
@@ -46,7 +46,9 @@ public class CLIManagerDocumentationTest
     {
         public int compare( Option opt1, Option opt2 )
         {
-            return opt1.getOpt().compareToIgnoreCase( opt2.getOpt() );
+            String s1 = opt1.getOpt() != null ? opt1.getOpt() : opt1.getLongOpt();
+            String s2 = opt2.getOpt() != null ? opt2.getOpt() : opt2.getLongOpt();
+            return s1.compareToIgnoreCase( s2 );
         }
     }