Example #1
0
 /**
  * Adds asset vcs repositories.
  *
  * @param RepositoryManager $rm
  * @param array             $repositories
  * @param Pool|null         $pool
  *
  * @throws \UnexpectedValueException When config of repository is not an array
  * @throws \UnexpectedValueException When the config of repository has not a type defined
  * @throws \UnexpectedValueException When the config of repository has an invalid type
  */
 protected function addRepositories(RepositoryManager $rm, array $repositories, Pool $pool = null)
 {
     foreach ($repositories as $index => $repo) {
         $this->validateRepositories($index, $repo);
         if ('package' === $repo['type']) {
             $name = $repo['package']['name'];
         } else {
             $name = is_int($index) ? preg_replace('{^https?://}i', '', $repo['url']) : $index;
             $name = isset($repo['name']) ? $repo['name'] : $name;
             $repo['vcs-package-filter'] = $this->packageFilter;
         }
         Util::addRepository($this->io, $rm, $this->repos, $name, $repo, $pool);
     }
 }
 /**
  * {@inheritdoc}
  */
 public function whatProvides(Pool $pool, $name, $bypassFilters = false)
 {
     if (null !== ($provides = $this->findWhatProvides($name))) {
         return $provides;
     }
     try {
         $repoName = Util::convertAliasName($name);
         $packageName = Util::cleanPackageName($repoName);
         $packageUrl = str_replace('%package%', $packageName, $this->lazyProvidersUrl);
         $cacheName = $packageName . '-' . sha1($packageName) . '-package.json';
         $data = $this->fetchFile($packageUrl, $cacheName);
         $repo = $this->createVcsRepositoryConfig($data, Util::cleanPackageName($name));
         $repo['vcs-package-filter'] = $this->packageFilter;
         $repo['vcs-driver-options'] = Util::getArrayValue($this->repoConfig, 'vcs-driver-options', array());
         Util::addRepository($this->io, $this->rm, $this->repos, $name, $repo, $pool);
         $this->providers[$name] = array();
     } catch (\Exception $ex) {
         $this->whatProvidesManageException($pool, $name, $ex);
     }
     return $this->providers[$name];
 }
 /**
  * {@inheritDoc}
  */
 public function whatProvides(Pool $pool, $name)
 {
     if (null !== ($provides = $this->findWhatProvides($name))) {
         return $provides;
     }
     // no education
     $io = $this->io;
     $ioReflection = new \ReflectionObject($io);
     // no thought control
     $inputReflection = $ioReflection->getProperty('input');
     $inputReflection->setAccessible(true);
     $inputPublic = $inputReflection->getValue($io);
     // no dark sarcasm
     $args = $inputPublic->getArguments();
     $isAsset = isset($args['packages']) && (bool) count(array_filter($args['packages'], function ($el) {
         return strpos($el, 'bower-asset') !== false || strpos($el, 'npm-asset') !== false;
     }));
     //  kids alone
     if (!$isAsset && $inputPublic->getOption('ansi') || $inputPublic->getOption('no-ansi')) {
         return array();
     }
     try {
         $repoName = Util::convertAliasName($name);
         $packageName = Util::cleanPackageName($repoName);
         $packageUrl = str_replace('%package%', $packageName, $this->lazyProvidersUrl);
         $cacheName = $packageName . '-' . sha1($packageName) . '-package.json';
         $data = $this->fetchFile($packageUrl, $cacheName);
         $repo = $this->createVcsRepositoryConfig($data, Util::cleanPackageName($name));
         $repo['vcs-package-filter'] = $this->packageFilter;
         Util::addRepository($this->io, $this->rm, $this->repos, $name, $repo, $pool);
         $this->providers[$name] = array();
     } catch (\Exception $ex) {
         $this->whatProvidesManageException($pool, $name, $ex);
     }
     return $this->providers[$name];
 }
    /**
     * {@inheritDoc}
     */
    public function whatProvides(Pool $pool, $name)
    {
        if (null !== $provides = $this->findWhatProvides($name)) {
            return $provides;
        }

        try {
            $repoName = Util::convertAliasName($name);
            $packageName = Util::cleanPackageName($repoName);
            $packageUrl = str_replace('%package%', $packageName, $this->lazyProvidersUrl);
            $cacheName = $packageName . '-' . sha1($packageName) . '-package.json';
            $data = $this->fetchFile($packageUrl, $cacheName);
            $repo = $this->createVcsRepositoryConfig($data, Util::cleanPackageName($name));
            $repo['vcs-package-filter'] = $this->packageFilter;

            Util::addRepository($this->rm, $this->repos, $name, $repo, $pool);

            $this->providers[$name] = array();

        } catch (TransportException $ex) {
            $this->fallbackWathProvides($pool, $name, $ex);
        }

        return $this->providers[$name];
    }