Browse Source

Simulate dummy Composer when searching in uninitialized folder, fixes #4392

Niels Keurentjes 9 years ago
parent
commit
a2d2c4ddd5
1 changed files with 8 additions and 13 deletions
  1. 8 13
      src/Composer/Command/SearchCommand.php

+ 8 - 13
src/Composer/Command/SearchCommand.php

@@ -12,6 +12,7 @@
 
 namespace Composer\Command;
 
+use Composer\Factory;
 use Symfony\Component\Console\Input\InputInterface;
 use Symfony\Component\Console\Input\InputArgument;
 use Symfony\Component\Console\Input\InputOption;
@@ -57,21 +58,15 @@ EOT
         // init repos
         $platformRepo = new PlatformRepository;
         $io = $this->getIO();
-        if ($composer = $this->getComposer(false)) {
-            $localRepo = $composer->getRepositoryManager()->getLocalRepository();
-            $installedRepo = new CompositeRepository(array($localRepo, $platformRepo));
-            $repos = new CompositeRepository(array_merge(array($installedRepo), $composer->getRepositoryManager()->getRepositories()));
-        } else {
-            $defaultRepos = RepositoryFactory::defaultRepos($io);
-            $io->writeError('No composer.json found in the current directory, showing packages from ' . implode(', ', array_keys($defaultRepos)));
-            $installedRepo = $platformRepo;
-            $repos = new CompositeRepository(array_merge(array($installedRepo), $defaultRepos));
+        if (!($composer = $this->getComposer(false))) {
+            $composer = Factory::create($this->getIO(), array());
         }
+        $localRepo = $composer->getRepositoryManager()->getLocalRepository();
+        $installedRepo = new CompositeRepository(array($localRepo, $platformRepo));
+        $repos = new CompositeRepository(array_merge(array($installedRepo), $composer->getRepositoryManager()->getRepositories()));
 
-        if ($composer) {
-            $commandEvent = new CommandEvent(PluginEvents::COMMAND, 'search', $input, $output);
-            $composer->getEventDispatcher()->dispatch($commandEvent->getName(), $commandEvent);
-        }
+        $commandEvent = new CommandEvent(PluginEvents::COMMAND, 'search', $input, $output);
+        $composer->getEventDispatcher()->dispatch($commandEvent->getName(), $commandEvent);
 
         $onlyName = $input->getOption('only-name');