diff --git a/.gitignore b/.gitignore index f6b653c..a708f80 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ composer.lock .phpunit.cache tmp +/.idea/ diff --git a/src/Command/BreakPointCommand.php b/src/Command/BreakPointCommand.php index 4096335..a7050d6 100644 --- a/src/Command/BreakPointCommand.php +++ b/src/Command/BreakPointCommand.php @@ -37,6 +37,13 @@ protected function configure(): void 'Maximum number of outdated major version packages', 5 ); + + $this->addOption( + 'ignore', + null, + InputOption::VALUE_IS_ARRAY | InputOption::VALUE_OPTIONAL, + 'Ignore packages by name, e.g. "symfony/" or "symfony/console"', + ); } protected function execute(InputInterface $input, OutputInterface $output): int @@ -59,7 +66,18 @@ protected function execute(InputInterface $input, OutputInterface $output): int $composerJsonFilePath = getcwd() . '/composer.json'; $outdatedComposer = $this->outdatedComposerFactory->createOutdatedComposer( - $responseJson[ComposerKey::INSTALLED_KEY], + array_filter( + $responseJson[ComposerKey::INSTALLED_KEY], + static function (array $package) use ($input): bool { + foreach ($input->getOption('ignore') as $ignoredPackage) { + if (str_contains((string) $package['name'], $ignoredPackage)) { + return false; + } + } + + return true; + } + ), $composerJsonFilePath ); diff --git a/tests/ComposerProcessor/RaiseToInstalledComposerProcessor/RaiseToInstalledComposerProcessorTest.php b/tests/ComposerProcessor/RaiseToInstalledComposerProcessor/RaiseToInstalledComposerProcessorTest.php index a9fa1e7..a02a3c2 100644 --- a/tests/ComposerProcessor/RaiseToInstalledComposerProcessor/RaiseToInstalledComposerProcessorTest.php +++ b/tests/ComposerProcessor/RaiseToInstalledComposerProcessor/RaiseToInstalledComposerProcessorTest.php @@ -59,7 +59,7 @@ public function testSinglePiped(): void $this->assertSame('illuminate/container', $changedPackageVersion->getPackageName()); $this->assertSame('^12.14 | 13.0', $changedPackageVersion->getOldVersion()); - $this->assertSame('^12.18', $changedPackageVersion->getNewVersion()); + $this->assertSame('^12.19', $changedPackageVersion->getNewVersion()); } public function testDoublePiped(): void @@ -72,6 +72,6 @@ public function testDoublePiped(): void $this->assertSame('illuminate/container', $changedPackageVersion->getPackageName()); $this->assertSame('^12.14 | 13.0', $changedPackageVersion->getOldVersion()); - $this->assertSame('^12.18', $changedPackageVersion->getNewVersion()); + $this->assertSame('^12.19', $changedPackageVersion->getNewVersion()); } }