From d7c327c061094fb4d22791614263944dcabd38c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20FIDRY?= Date: Wed, 31 Jan 2024 15:46:24 +0100 Subject: [PATCH] [Console] Fix color support --- Output/StreamOutput.php | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Output/StreamOutput.php b/Output/StreamOutput.php index 0ef15cf31..595ac7fd9 100644 --- a/Output/StreamOutput.php +++ b/Output/StreamOutput.php @@ -106,10 +106,22 @@ protected function hasColorSupport() return true; } - return 'Hyper' === getenv('TERM_PROGRAM') + if ('Hyper' === getenv('TERM_PROGRAM') + || false !== getenv('COLORTERM') || false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI') - || str_starts_with((string) getenv('TERM'), 'xterm'); + ) { + return true; + } + + $term = (string) getenv('TERM'); + + if ('dumb' === $term) { + return false; + } + + // See https://github.com/chalk/supports-color/blob/d4f413efaf8da045c5ab440ed418ef02dbb28bf1/index.js#L157 + return 1 === @preg_match('/^((screen|xterm|vt100|vt220|putty|rxvt|ansi|cygwin|linux).*)|(.*-256(color)?(-bce)?)$/', $term); } /**