Add ability to use a Regexp when updating packages
parent
3a0270147a
commit
159badb06b
|
@ -96,6 +96,10 @@ If you just want to update a few packages and not all, you can list them as such
|
|||
|
||||
$ php composer.phar update vendor/package vendor/package2
|
||||
|
||||
You can also use a Regular expression pattern to update a bunch of packages at once:
|
||||
|
||||
$ php composer.phar update vendor.*
|
||||
|
||||
### Options
|
||||
|
||||
* **--prefer-source:** Install packages from `source` when available.
|
||||
|
|
|
@ -624,7 +624,13 @@ class Installer
|
|||
throw new \LogicException('isUpdateable should only be called when a whitelist is present');
|
||||
}
|
||||
|
||||
return isset($this->updateWhitelist[$package->getName()]);
|
||||
foreach($this->updateWhitelist as $whiteListedPattern => $void) {
|
||||
if(preg_match("#^".$whiteListedPattern."$#i", $package->getName())) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -0,0 +1,45 @@
|
|||
--TEST--
|
||||
Update with a package whitelist only updates those corresponding to the pattern
|
||||
--COMPOSER--
|
||||
{
|
||||
"repositories": [
|
||||
{
|
||||
"type": "package",
|
||||
"package": [
|
||||
{ "name": "vendor/Test-Package", "version": "2.0" },
|
||||
{ "name": "vendor/NotMe", "version": "2.0" },
|
||||
{ "name": "exact/Test-Package", "version": "2.0" },
|
||||
{ "name": "notexact/TestPackage", "version": "2.0" },
|
||||
{ "name": "all/Package1", "version": "2.0" },
|
||||
{ "name": "all/Package2", "version": "2.0" },
|
||||
{ "name": "another/another", "version": "2.0" }
|
||||
]
|
||||
}
|
||||
],
|
||||
"require": {
|
||||
"vendor/Test-Package": "*.*",
|
||||
"vendor/NotMe": "*.*",
|
||||
"exact/Test-Package": "*.*",
|
||||
"notexact/TestPackage": "*.*",
|
||||
"all/Package1": "*.*",
|
||||
"all/Package2": "*.*",
|
||||
"another/another": "*.*"
|
||||
}
|
||||
}
|
||||
--INSTALLED--
|
||||
[
|
||||
{ "name": "vendor/Test-Package", "version": "1.0" },
|
||||
{ "name": "vendor/NotMe", "version": "1.0" },
|
||||
{ "name": "exact/Test-Package", "version": "1.0" },
|
||||
{ "name": "notexact/TestPackage", "version": "1.0" },
|
||||
{ "name": "all/Package1", "version": "1.0" },
|
||||
{ "name": "all/Package2", "version": "1.0" },
|
||||
{ "name": "another/another", "version": "1.0" }
|
||||
]
|
||||
--RUN--
|
||||
update vendor/Test.* exact/Test-Package notexact/Test all.*
|
||||
--EXPECT--
|
||||
Updating vendor/Test-Package (1.0) to vendor/Test-Package (2.0)
|
||||
Updating exact/Test-Package (1.0) to exact/Test-Package (2.0)
|
||||
Updating all/Package1 (1.0) to all/Package1 (2.0)
|
||||
Updating all/Package2 (1.0) to all/Package2 (2.0)
|
Loading…
Reference in New Issue