From ec173326ea6a86be05301e7bfac17dc013798a62 Mon Sep 17 00:00:00 2001 From: Christian Weiske Date: Thu, 17 Dec 2015 06:38:26 +0100 Subject: [PATCH] Automatically detect if we should enable colors or not --- src/phpsqllint/Cli.php | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/src/phpsqllint/Cli.php b/src/phpsqllint/Cli.php index 129a925..2f2473f 100644 --- a/src/phpsqllint/Cli.php +++ b/src/phpsqllint/Cli.php @@ -168,11 +168,17 @@ class Cli $parser->addOption( 'colors', array( - 'short_name' => '-c', - 'long_name' => '--colors', + 'long_name' => '--color', 'description' => 'Use colors in formatting output', 'action' => 'StoreTrue', - 'default' => false, + ) + ); + $parser->addOption( + 'nocolors', + array( + 'long_name' => '--nocolor', + 'description' => 'Disable colors in formatting output', + 'action' => 'StoreTrue', ) ); $parser->addOption( @@ -219,7 +225,21 @@ class Cli $this->renderer = new $rendClass(); $this->format = $result->options['format']; - $this->colors = $result->options['colors']; + + if ($result->options['colors'] !== null) { + $this->colors = $result->options['colors']; + } else if ($result->options['nocolors'] !== null) { + $this->colors = !$result->options['nocolors']; + } else { + //default coloring to enabled, except + // when piping | to another tool + $this->colors = true; + if (function_exists('posix_isatty') + && !posix_isatty(STDOUT) + ) { + $this->colors = false; + } + } foreach ($result->args['sql_files'] as $filename) { if ($filename == '-') { -- 2.30.2