Skip to content

Commit

Permalink
[MNG-6380] Use the new jansi AnsiMode to control the whether ansi seq…
Browse files Browse the repository at this point in the history
…uences are stripped or let through
  • Loading branch information
gnodet committed Apr 16, 2021
1 parent 81a813b commit 0bb44cd
Showing 1 changed file with 23 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@

import org.fusesource.jansi.Ansi;
import org.fusesource.jansi.AnsiConsole;
import org.fusesource.jansi.AnsiMode;

/**
* Colored message utils, to manage colors consistently across plugins (only if Maven version is at least 3.5.0).
Expand Down Expand Up @@ -81,17 +82,13 @@ public static void systemUninstall()
// hook can only set when JANSI is true
if ( shutdownHook != null )
{
// if out and system_out are same instance again, ansi is assumed to be uninstalled
if ( AnsiConsole.out == AnsiConsole.system_out )
try
{
try
{
Runtime.getRuntime().removeShutdownHook( shutdownHook );
}
catch ( IllegalStateException ex )
{
// ignore - VM is already shutting down
}
Runtime.getRuntime().removeShutdownHook( shutdownHook );
}
catch ( IllegalStateException ex )
{
// ignore - VM is already shutting down
}
}
}
Expand All @@ -113,7 +110,19 @@ public static void setColorEnabled( boolean flag )
{
if ( JANSI )
{
AnsiConsole.out().setMode( flag ? AnsiMode.Force : AnsiMode.Strip );
Ansi.setEnabled( flag );
System.setProperty( AnsiConsole.JANSI_MODE,
flag ? AnsiConsole.JANSI_MODE_FORCE : AnsiConsole.JANSI_MODE_STRIP );
boolean installed = AnsiConsole.isInstalled();
while ( AnsiConsole.isInstalled() )
{
AnsiConsole.systemUninstall();
}
if ( installed )
{
AnsiConsole.systemInstall();
}
}
}

Expand Down Expand Up @@ -194,7 +203,10 @@ public void run()
{
synchronized ( STARTUP_SHUTDOWN_MONITOR )
{
doSystemUninstall();
while ( AnsiConsole.isInstalled() )
{
doSystemUninstall();
}
}
}
};
Expand Down

0 comments on commit 0bb44cd

Please sign in to comment.