diff --git a/src/Sasedev/Composer/Plugin/Filescopier/ScriptHandler.php b/src/Sasedev/Composer/Plugin/Filescopier/ScriptHandler.php index 0058161..e517663 100644 --- a/src/Sasedev/Composer/Plugin/Filescopier/ScriptHandler.php +++ b/src/Sasedev/Composer/Plugin/Filescopier/ScriptHandler.php @@ -5,6 +5,7 @@ use Composer\Composer; use Composer\EventDispatcher\EventSubscriberInterface; use Composer\IO\IOInterface; +use Composer\Package\PackageInterface; use Composer\Plugin\PluginInterface; use Composer\Script\Event; @@ -77,13 +78,26 @@ public function onPostCmd(Event $event) public static function buildParameters(Event $event) { - $IO = $event->getIO(); - $composer = $event->getComposer(); + $composer = $event->getComposer(); + $installedPackages = $composer + ->getRepositoryManager() + ->getLocalRepository() + ->getCanonicalPackages(); + $installedPackages[] = $composer->getPackage(); + foreach ($installedPackages as $package) { + self::copyFiles($event, $package); + } + + } - $extras = $composer->getPackage()->getExtra(); - if (!isset($extras['filescopier'])) { - $IO->write('The parameter handler needs to be configured through the extra.filescopier setting.'); - } else { + /** + * @param \Composer\Script\Event $event + * @param \Composer\Package\PackageInterface $package + */ + protected static function copyFiles(Event $event, PackageInterface $package) + { + $extras = $package->getExtra(); + if (isset($extras['filescopier'])) { $configs = $extras['filescopier']; if (!is_array($configs)) { throw new \InvalidArgumentException('The extra.filescopier setting must be an array or a configuration object.'); @@ -105,7 +119,6 @@ public static function buildParameters(Event $event) $processor->processCopy($config); } } - } } \ No newline at end of file