Skip to content

Commit 5615d5b

Browse files
authored
Option to allow generating empty baseline
1 parent 135a9e8 commit 5615d5b

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

src/Command/AnalyseCommand.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ protected function configure(): void
5555
new InputOption('autoload-file', 'a', InputOption::VALUE_REQUIRED, 'Project\'s additional autoload file path'),
5656
new InputOption('error-format', null, InputOption::VALUE_REQUIRED, 'Format in which to print the result of the analysis', null),
5757
new InputOption('generate-baseline', null, InputOption::VALUE_OPTIONAL, 'Path to a file where the baseline should be saved', false),
58+
new InputOption('allow-empty-baseline', null, InputOption::VALUE_NONE, 'Do not error out when the generated baseline is empty'),
5859
new InputOption('memory-limit', null, InputOption::VALUE_REQUIRED, 'Memory limit for analysis'),
5960
new InputOption('xdebug', null, InputOption::VALUE_NONE, 'Allow running with XDebug for debugging purposes'),
6061
new InputOption('fix', null, InputOption::VALUE_NONE, 'Launch PHPStan Pro'),
@@ -102,6 +103,8 @@ protected function execute(InputInterface $input, OutputInterface $output): int
102103
$generateBaselineFile = 'phpstan-baseline.neon';
103104
}
104105

106+
$allowEmptyBaseline = (bool) $input->getOption('allow-empty-baseline');
107+
105108
if (
106109
!is_array($paths)
107110
|| (!is_string($memoryLimit) && $memoryLimit !== null)
@@ -132,6 +135,11 @@ protected function execute(InputInterface $input, OutputInterface $output): int
132135
return 1;
133136
}
134137

138+
if ($generateBaselineFile === null && $allowEmptyBaseline) {
139+
$inceptionResult->getStdOutput()->getStyle()->error('You must pass the --generate-baseline option alongside --allow-empty-baseline.');
140+
return $inceptionResult->handleReturn(1);
141+
}
142+
135143
$errorOutput = $inceptionResult->getErrorOutput();
136144
$obsoleteDockerImage = $_SERVER['PHPSTAN_OBSOLETE_DOCKER_IMAGE'] ?? 'false';
137145
if ($obsoleteDockerImage === 'true') {
@@ -239,7 +247,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int
239247
}
240248

241249
if ($generateBaselineFile !== null) {
242-
if (!$analysisResult->hasErrors()) {
250+
if (!$allowEmptyBaseline && !$analysisResult->hasErrors()) {
243251
$inceptionResult->getStdOutput()->getStyle()->error('No errors were found during the analysis. Baseline could not be generated.');
244252

245253
return $inceptionResult->handleReturn(1);

0 commit comments

Comments
 (0)