diff --git a/src/Agentic/TerminalDetector.php b/src/Agentic/TerminalDetector.php new file mode 100644 index 00000000000..bcae3b44dac --- /dev/null +++ b/src/Agentic/TerminalDetector.php @@ -0,0 +1,22 @@ +symfonyStyle->warning(sprintf( 'No "%s" config found. Create one, or pass "--config ".', RectorConfigsResolver::DEFAULT_CONFIG_FILE diff --git a/src/Configuration/ConfigurationFactory.php b/src/Configuration/ConfigurationFactory.php index dff51b7d014..74a61c0bcc8 100644 --- a/src/Configuration/ConfigurationFactory.php +++ b/src/Configuration/ConfigurationFactory.php @@ -4,6 +4,7 @@ namespace Rector\Configuration; +use Rector\Agentic\TerminalDetector; use Rector\ChangesReporting\Output\ConsoleOutputFormatter; use Rector\Configuration\Parameter\SimpleParameterProvider; use Rector\FileSystem\FilePathFilter; @@ -175,7 +176,7 @@ private function shouldShowProgressBar(InputInterface $input, string $outputForm } // no interactive terminal, e.g. piped output, CI or an agent - the redraws are just noise - if (! $this->isTtyOutput()) { + if (! TerminalDetector::isOutputTty()) { return false; } @@ -186,11 +187,6 @@ private function shouldShowProgressBar(InputInterface $input, string $outputForm return $outputFormat === ConsoleOutputFormatter::NAME; } - private function isTtyOutput(): bool - { - return defined('STDOUT') && stream_isatty(STDOUT); - } - private function shouldShowDiffs(InputInterface $input): bool { $noDiffs = (bool) $input->getOption(Option::NO_DIFFS); diff --git a/src/Console/Style/SymfonyStyleFactory.php b/src/Console/Style/SymfonyStyleFactory.php index 81b51e1051d..55fc6e36be4 100644 --- a/src/Console/Style/SymfonyStyleFactory.php +++ b/src/Console/Style/SymfonyStyleFactory.php @@ -4,6 +4,7 @@ namespace Rector\Console\Style; +use Rector\Agentic\TerminalDetector; use Rector\Util\Reflection\PrivatesAccessor; use Symfony\Component\Console\Application; use Symfony\Component\Console\Input\ArgvInput; @@ -41,7 +42,7 @@ public function create(): RectorStyle } // no interactive terminal, e.g. piped output, CI or an agent - never emit ANSI, even if forced via --ansi - if (! defined('STDOUT') || ! stream_isatty(STDOUT)) { + if (! TerminalDetector::isOutputTty()) { $consoleOutput->setDecorated(false); }