Add support for wildcards in outdated's --ignore arg, fixes #11831
parent
ebb6a82099
commit
e88c7a8987
|
@ -562,7 +562,7 @@ php composer.phar show monolog/monolog 1.0.2
|
||||||
* **--tree (-t):** List your dependencies as a tree. If you pass a package name it will show the dependency tree for that package.
|
* **--tree (-t):** List your dependencies as a tree. If you pass a package name it will show the dependency tree for that package.
|
||||||
* **--latest (-l):** List all installed packages including their latest version.
|
* **--latest (-l):** List all installed packages including their latest version.
|
||||||
* **--outdated (-o):** Implies --latest, but this lists *only* packages that have a newer version available.
|
* **--outdated (-o):** Implies --latest, but this lists *only* packages that have a newer version available.
|
||||||
* **--ignore:** Ignore specified package(s). Use it with the --outdated option if you don't want to be informed about new versions of some packages
|
* **--ignore:** Ignore specified package(s). Can contain wildcards (`*`). Use it with the --outdated option if you don't want to be informed about new versions of some packages
|
||||||
* **--no-dev:** Filters dev dependencies from the package list.
|
* **--no-dev:** Filters dev dependencies from the package list.
|
||||||
* **--major-only (-M):** Use with --latest or --outdated. Only shows packages that have major SemVer-compatible updates.
|
* **--major-only (-M):** Use with --latest or --outdated. Only shows packages that have major SemVer-compatible updates.
|
||||||
* **--minor-only (-m):** Use with --latest or --outdated. Only shows packages that have minor SemVer-compatible updates.
|
* **--minor-only (-m):** Use with --latest or --outdated. Only shows packages that have minor SemVer-compatible updates.
|
||||||
|
@ -597,7 +597,7 @@ The color coding is as such:
|
||||||
* **--all (-a):** Show all packages, not just outdated (alias for `composer show --latest`).
|
* **--all (-a):** Show all packages, not just outdated (alias for `composer show --latest`).
|
||||||
* **--direct (-D):** Restricts the list of packages to your direct dependencies.
|
* **--direct (-D):** Restricts the list of packages to your direct dependencies.
|
||||||
* **--strict:** Returns non-zero exit code if any package is outdated.
|
* **--strict:** Returns non-zero exit code if any package is outdated.
|
||||||
* **--ignore:** Ignore specified package(s). Use it if you don't want to be informed about new versions of some packages
|
* **--ignore:** Ignore specified package(s). Can contain wildcards (`*`). Use it if you don't want to be informed about new versions of some packages
|
||||||
* **--major-only (-M):** Only shows packages that have major SemVer-compatible updates.
|
* **--major-only (-M):** Only shows packages that have major SemVer-compatible updates.
|
||||||
* **--minor-only (-m):** Only shows packages that have minor SemVer-compatible updates.
|
* **--minor-only (-m):** Only shows packages that have minor SemVer-compatible updates.
|
||||||
* **--patch-only (-p):** Only shows packages that have patch-level SemVer-compatible updates.
|
* **--patch-only (-p):** Only shows packages that have patch-level SemVer-compatible updates.
|
||||||
|
|
|
@ -42,7 +42,7 @@ class OutdatedCommand extends BaseCommand
|
||||||
new InputOption('patch-only', 'p', InputOption::VALUE_NONE, 'Show only packages that have patch SemVer-compatible updates.'),
|
new InputOption('patch-only', 'p', InputOption::VALUE_NONE, 'Show only packages that have patch SemVer-compatible updates.'),
|
||||||
new InputOption('sort-by-age', 'A', InputOption::VALUE_NONE, 'Displays the installed version\'s age, and sorts packages oldest first.'),
|
new InputOption('sort-by-age', 'A', InputOption::VALUE_NONE, 'Displays the installed version\'s age, and sorts packages oldest first.'),
|
||||||
new InputOption('format', 'f', InputOption::VALUE_REQUIRED, 'Format of the output: text or json', 'text', ['json', 'text']),
|
new InputOption('format', 'f', InputOption::VALUE_REQUIRED, 'Format of the output: text or json', 'text', ['json', 'text']),
|
||||||
new InputOption('ignore', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Ignore specified package(s). Use it if you don\'t want to be informed about new versions of some packages.', null, $this->suggestInstalledPackage(false)),
|
new InputOption('ignore', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Ignore specified package(s). Can contain wildcards (*). Use it if you don\'t want to be informed about new versions of some packages.', null, $this->suggestInstalledPackage(false)),
|
||||||
new InputOption('no-dev', null, InputOption::VALUE_NONE, 'Disables search in require-dev packages.'),
|
new InputOption('no-dev', null, InputOption::VALUE_NONE, 'Disables search in require-dev packages.'),
|
||||||
new InputOption('ignore-platform-req', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Ignore a specific platform requirement (php & ext- packages). Use with the --outdated option'),
|
new InputOption('ignore-platform-req', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Ignore a specific platform requirement (php & ext- packages). Use with the --outdated option'),
|
||||||
new InputOption('ignore-platform-reqs', null, InputOption::VALUE_NONE, 'Ignore all platform requirements (php & ext- packages). Use with the --outdated option'),
|
new InputOption('ignore-platform-reqs', null, InputOption::VALUE_NONE, 'Ignore all platform requirements (php & ext- packages). Use with the --outdated option'),
|
||||||
|
|
|
@ -95,7 +95,7 @@ class ShowCommand extends BaseCommand
|
||||||
new InputOption('tree', 't', InputOption::VALUE_NONE, 'List the dependencies as a tree'),
|
new InputOption('tree', 't', InputOption::VALUE_NONE, 'List the dependencies as a tree'),
|
||||||
new InputOption('latest', 'l', InputOption::VALUE_NONE, 'Show the latest version'),
|
new InputOption('latest', 'l', InputOption::VALUE_NONE, 'Show the latest version'),
|
||||||
new InputOption('outdated', 'o', InputOption::VALUE_NONE, 'Show the latest version but only for packages that are outdated'),
|
new InputOption('outdated', 'o', InputOption::VALUE_NONE, 'Show the latest version but only for packages that are outdated'),
|
||||||
new InputOption('ignore', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Ignore specified package(s). Use it with the --outdated option if you don\'t want to be informed about new versions of some packages.', null, $this->suggestInstalledPackage(false)),
|
new InputOption('ignore', null, InputOption::VALUE_REQUIRED | InputOption::VALUE_IS_ARRAY, 'Ignore specified package(s). Can contain wildcards (*). Use it with the --outdated option if you don\'t want to be informed about new versions of some packages.', null, $this->suggestInstalledPackage(false)),
|
||||||
new InputOption('major-only', 'M', InputOption::VALUE_NONE, 'Show only packages that have major SemVer-compatible updates. Use with the --latest or --outdated option.'),
|
new InputOption('major-only', 'M', InputOption::VALUE_NONE, 'Show only packages that have major SemVer-compatible updates. Use with the --latest or --outdated option.'),
|
||||||
new InputOption('minor-only', 'm', InputOption::VALUE_NONE, 'Show only packages that have minor SemVer-compatible updates. Use with the --latest or --outdated option.'),
|
new InputOption('minor-only', 'm', InputOption::VALUE_NONE, 'Show only packages that have minor SemVer-compatible updates. Use with the --latest or --outdated option.'),
|
||||||
new InputOption('patch-only', null, InputOption::VALUE_NONE, 'Show only packages that have patch SemVer-compatible updates. Use with the --latest or --outdated option.'),
|
new InputOption('patch-only', null, InputOption::VALUE_NONE, 'Show only packages that have patch SemVer-compatible updates. Use with the --latest or --outdated option.'),
|
||||||
|
@ -459,7 +459,7 @@ EOT
|
||||||
$showMajorOnly = $input->getOption('major-only');
|
$showMajorOnly = $input->getOption('major-only');
|
||||||
$showMinorOnly = $input->getOption('minor-only');
|
$showMinorOnly = $input->getOption('minor-only');
|
||||||
$showPatchOnly = $input->getOption('patch-only');
|
$showPatchOnly = $input->getOption('patch-only');
|
||||||
$ignoredPackages = array_map('strtolower', $input->getOption('ignore'));
|
$ignoredPackagesRegex = BasePackage::packageNamesToRegexp(array_map('strtolower', $input->getOption('ignore')));
|
||||||
$indent = $showAllTypes ? ' ' : '';
|
$indent = $showAllTypes ? ' ' : '';
|
||||||
/** @var PackageInterface[] $latestPackages */
|
/** @var PackageInterface[] $latestPackages */
|
||||||
$latestPackages = [];
|
$latestPackages = [];
|
||||||
|
@ -520,7 +520,7 @@ EOT
|
||||||
$packageIsUpToDate = $latestPackage && $latestPackage->getFullPrettyVersion() === $package->getFullPrettyVersion() && (!$latestPackage instanceof CompletePackageInterface || !$latestPackage->isAbandoned());
|
$packageIsUpToDate = $latestPackage && $latestPackage->getFullPrettyVersion() === $package->getFullPrettyVersion() && (!$latestPackage instanceof CompletePackageInterface || !$latestPackage->isAbandoned());
|
||||||
// When using --major-only, and no bigger version than current major is found then it is considered up to date
|
// When using --major-only, and no bigger version than current major is found then it is considered up to date
|
||||||
$packageIsUpToDate = $packageIsUpToDate || ($latestPackage === null && $showMajorOnly);
|
$packageIsUpToDate = $packageIsUpToDate || ($latestPackage === null && $showMajorOnly);
|
||||||
$packageIsIgnored = \in_array($package->getPrettyName(), $ignoredPackages, true);
|
$packageIsIgnored = Preg::isMatch($ignoredPackagesRegex, $package->getPrettyName());
|
||||||
if ($input->getOption('outdated') && ($packageIsUpToDate || $packageIsIgnored)) {
|
if ($input->getOption('outdated') && ($packageIsUpToDate || $packageIsIgnored)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue