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
|
$ 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
|
### Options
|
||||||
|
|
||||||
* **--prefer-source:** Install packages from `source` when available.
|
* **--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');
|
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