소스 검색

Show proper repo information and not always the default ones

Jordi Boggiano 12 년 전
부모
커밋
518253e150
1개의 변경된 파일8개의 추가작업 그리고 2개의 파일을 삭제
  1. 8 2
      src/Composer/Command/ShowCommand.php

+ 8 - 2
src/Composer/Command/ShowCommand.php

@@ -82,14 +82,20 @@ EOT
             $repos = $installedRepo = $getRepositories($this->getComposer(), $input->getOption('dev'));
         } elseif ($input->getOption('available')) {
             $installedRepo = $platformRepo;
-            $repos = new CompositeRepository(Factory::createDefaultRepositories($this->getIO()));
+            if ($composer = $this->getComposer(false)) {
+                $repos = new CompositeRepository($composer->getRepositoryManager()->getRepositories());
+            } else {
+                $defaultRepos = Factory::createDefaultRepositories($this->getIO());
+                $repos = new CompositeRepository($defaultRepos);
+                $output->writeln('No composer.json found in the current directory, showing available packages from ' . implode(', ', array_keys($defaultRepos)));
+            }
         } elseif ($composer = $this->getComposer(false)) {
             $localRepo = $getRepositories($composer, $input->getOption('dev'));
             $installedRepo = new CompositeRepository(array($localRepo, $platformRepo));
             $repos = new CompositeRepository(array_merge(array($installedRepo), $composer->getRepositoryManager()->getRepositories()));
         } else {
             $defaultRepos = Factory::createDefaultRepositories($this->getIO());
-            $output->writeln('No composer.json found in the current directory, showing packages from ' . implode(', ', array_keys($defaultRepos)));
+            $output->writeln('No composer.json found in the current directory, showing available packages from ' . implode(', ', array_keys($defaultRepos)));
             $installedRepo = $platformRepo;
             $repos = new CompositeRepository(array_merge(array($installedRepo), $defaultRepos));
         }