Преглед изворни кода

Merge remote-tracking branch 'digitalkaoz/issue_366'

Jordi Boggiano пре 13 година
родитељ
комит
4f61ec6600
1 измењених фајлова са 15 додато и 10 уклоњено
  1. 15 10
      src/Composer/Command/SearchCommand.php

+ 15 - 10
src/Composer/Command/SearchCommand.php

@@ -56,26 +56,31 @@ EOT
         }
 
         $tokens = array_map('strtolower', $input->getArgument('tokens'));
+        $packages = array();
+
         foreach ($repos->getPackages() as $package) {
             foreach ($tokens as $token) {
-                if (false === ($pos = strpos($package->getName(), $token))) {
+                if (false === ($pos = strpos($package->getName(), $token)) && (false === strpos(join(',',$package->getKeywords() ?: array()), $token))) {
                     continue;
                 }
 
-                if ($platformRepo->hasPackage($package)) {
-                    $type = '<info>platform: </info> ';
-                } elseif ($installedRepo->hasPackage($package)) {
-                    $type = '<info>installed:</info> ';
+                if (false !== ($pos = strpos($package->getName(), $token))) {
+                    $name = substr($package->getPrettyName(), 0, $pos)
+                        . '<highlight>' . substr($package->getPrettyName(), $pos, strlen($token)) . '</highlight>'
+                        . substr($package->getPrettyName(), $pos + strlen($token));
                 } else {
-                    $type = '<comment>available:</comment> ';
+                    $name = $package->getPrettyName();
                 }
 
-                $name = substr($package->getPrettyName(), 0, $pos)
-                    . '<highlight>' . substr($package->getPrettyName(), $pos, strlen($token)) . '</highlight>'
-                    . substr($package->getPrettyName(), $pos + strlen($token));
-                $output->writeln($type . ': ' . $name . ' <comment>' . $package->getPrettyVersion() . '</comment>');
+                $version = $installedRepo->hasPackage($package) ? '<info>'.$package->getPrettyVersion().'</info>' : $package->getPrettyVersion();
+
+                $packages[$name][$package->getPrettyVersion()] = $version;
                 continue 2;
             }
         }
+
+        foreach ($packages as $name => $versions) {
+            $output->writeln($name .' <comment>:</comment> '. join(', ', $versions));
+        }
     }
 }