diff --git a/src/Composer/Package/Loader/RootPackageLoader.php b/src/Composer/Package/Loader/RootPackageLoader.php index f0c25daba..a495f96b1 100644 --- a/src/Composer/Package/Loader/RootPackageLoader.php +++ b/src/Composer/Package/Loader/RootPackageLoader.php @@ -141,6 +141,10 @@ class RootPackageLoader extends ArrayLoader $realPackage->setPreferStable((bool) $config['prefer-stable']); } + if (isset($config['config'])) { + $realPackage->setConfig($config['config']); + } + $repos = RepositoryFactory::defaultRepos(null, $this->config, $this->manager); foreach ($repos as $repo) { $this->manager->addRepository($repo); diff --git a/src/Composer/Package/RootAliasPackage.php b/src/Composer/Package/RootAliasPackage.php index e66342136..1105d22aa 100644 --- a/src/Composer/Package/RootAliasPackage.php +++ b/src/Composer/Package/RootAliasPackage.php @@ -62,6 +62,22 @@ class RootAliasPackage extends AliasPackage implements RootPackageInterface return $this->aliasOf->getPreferStable(); } + /** + * {@inheritDoc} + */ + public function getConfig() + { + return $this->aliasOf->getConfig(); + } + + /** + * {@inheritDoc} + */ + public function getScripts() + { + return $this->aliasOf->getScripts(); + } + /** * {@inheritDoc} */ diff --git a/src/Composer/Package/RootPackage.php b/src/Composer/Package/RootPackage.php index b2e812990..ecaf94ae1 100644 --- a/src/Composer/Package/RootPackage.php +++ b/src/Composer/Package/RootPackage.php @@ -22,6 +22,8 @@ class RootPackage extends CompletePackage implements RootPackageInterface protected $minimumStability = 'stable'; protected $preferStable = false; protected $stabilityFlags = array(); + protected $config = array(); + protected $scripts = array(); protected $references = array(); protected $aliases = array(); @@ -79,6 +81,42 @@ class RootPackage extends CompletePackage implements RootPackageInterface return $this->preferStable; } + /** + * Set the config + * + * @param array $config + */ + public function setConfig(array $config) + { + $this->config = $config; + } + + /** + * {@inheritDoc} + */ + public function getConfig() + { + return $this->config; + } + + /** + * Set the scripts + * + * @param array $scripts + */ + public function setScripts(array $scripts) + { + $this->scripts = $scripts; + } + + /** + * {@inheritDoc} + */ + public function getScripts() + { + return $this->scripts; + } + /** * Set the references * diff --git a/src/Composer/Package/RootPackageInterface.php b/src/Composer/Package/RootPackageInterface.php index c1cf8c1be..7cf846955 100644 --- a/src/Composer/Package/RootPackageInterface.php +++ b/src/Composer/Package/RootPackageInterface.php @@ -58,6 +58,20 @@ interface RootPackageInterface extends CompletePackageInterface */ public function getPreferStable(); + /** + * Returns the root package's configuration + * + * @return array + */ + public function getConfig(); + + /** + * Returns the root package's scripts + * + * @return array + */ + public function getScripts(); + /** * Set the required packages *