Cache outcome of checking to see if host supports ANSI output

Closes gh-4510
This commit is contained in:
Andy Wilkinson 2015-12-10 11:15:50 +00:00
parent 8dc3b71ced
commit b36fe2cbd8

View File

@ -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 {
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;