|
|
|
|
@ -30,6 +30,8 @@ public abstract class AnsiOutput {
@@ -30,6 +30,8 @@ public abstract class AnsiOutput {
|
|
|
|
|
|
|
|
|
|
private static Enabled enabled = Enabled.DETECT; |
|
|
|
|
|
|
|
|
|
private static Boolean ansiCapable; |
|
|
|
|
|
|
|
|
|
private static final String OPERATING_SYSTEM_NAME = System.getProperty("os.name") |
|
|
|
|
.toLowerCase(); |
|
|
|
|
|
|
|
|
|
@ -108,12 +110,19 @@ public abstract class AnsiOutput {
@@ -108,12 +110,19 @@ public abstract class AnsiOutput {
|
|
|
|
|
|
|
|
|
|
private static boolean isEnabled() { |
|
|
|
|
if (enabled == Enabled.DETECT) { |
|
|
|
|
return detectIfEnabled(); |
|
|
|
|
return detectIfAnsiCapable(); |
|
|
|
|
} |
|
|
|
|
return enabled == Enabled.ALWAYS; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static boolean detectIfEnabled() { |
|
|
|
|
private static boolean detectIfAnsiCapable() { |
|
|
|
|
if (ansiCapable == null) { |
|
|
|
|
ansiCapable = doDetectIfAnsiCapable(); |
|
|
|
|
} |
|
|
|
|
return ansiCapable; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private static boolean doDetectIfAnsiCapable() { |
|
|
|
|
try { |
|
|
|
|
if (System.console() == null) { |
|
|
|
|
return false; |
|
|
|
|
|