|
|
@ -52,7 +52,7 @@ class ShowCommand extends BaseCommand
|
|
|
|
->setAliases(array('info'))
|
|
|
|
->setAliases(array('info'))
|
|
|
|
->setDescription('Show information about packages')
|
|
|
|
->setDescription('Show information about packages')
|
|
|
|
->setDefinition(array(
|
|
|
|
->setDefinition(array(
|
|
|
|
new InputArgument('package', InputArgument::OPTIONAL, 'Package to inspect'),
|
|
|
|
new InputArgument('package', InputArgument::OPTIONAL, 'Package to inspect. Or a name including a wildcard (*) to filter lists of packages instead.'),
|
|
|
|
new InputArgument('version', InputArgument::OPTIONAL, 'Version or version constraint to inspect'),
|
|
|
|
new InputArgument('version', InputArgument::OPTIONAL, 'Version or version constraint to inspect'),
|
|
|
|
new InputOption('all', null, InputOption::VALUE_NONE, 'List all packages'),
|
|
|
|
new InputOption('all', null, InputOption::VALUE_NONE, 'List all packages'),
|
|
|
|
new InputOption('installed', 'i', InputOption::VALUE_NONE, 'List installed packages only (enabled by default, only present for BC).'),
|
|
|
|
new InputOption('installed', 'i', InputOption::VALUE_NONE, 'List installed packages only (enabled by default, only present for BC).'),
|
|
|
@ -131,8 +131,10 @@ EOT
|
|
|
|
$composer->getEventDispatcher()->dispatch($commandEvent->getName(), $commandEvent);
|
|
|
|
$composer->getEventDispatcher()->dispatch($commandEvent->getName(), $commandEvent);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$packageFilter = $input->getArgument('package');
|
|
|
|
|
|
|
|
|
|
|
|
// show single package or single version
|
|
|
|
// show single package or single version
|
|
|
|
if ($input->getArgument('package') || !empty($package)) {
|
|
|
|
if (($packageFilter && false === strpos($packageFilter, '*')) || !empty($package)) {
|
|
|
|
if (empty($package)) {
|
|
|
|
if (empty($package)) {
|
|
|
|
list($package, $versions) = $this->getPackage($installedRepo, $repos, $input->getArgument('package'), $input->getArgument('version'));
|
|
|
|
list($package, $versions) = $this->getPackage($installedRepo, $repos, $input->getArgument('package'), $input->getArgument('version'));
|
|
|
|
|
|
|
|
|
|
|
@ -188,6 +190,11 @@ EOT
|
|
|
|
|
|
|
|
|
|
|
|
// list packages
|
|
|
|
// list packages
|
|
|
|
$packages = array();
|
|
|
|
$packages = array();
|
|
|
|
|
|
|
|
if ($packageFilter) {
|
|
|
|
|
|
|
|
$packageFilter = '{^'.str_replace('\\*', '.*?', preg_quote($packageFilter)).'$}i';
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
$packageFilter = '{.}';
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
foreach ($repos as $repo) {
|
|
|
|
foreach ($repos as $repo) {
|
|
|
|
if ($repo === $platformRepo) {
|
|
|
|
if ($repo === $platformRepo) {
|
|
|
@ -202,19 +209,23 @@ EOT
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if ($repo instanceof ComposerRepository && $repo->hasProviders()) {
|
|
|
|
if ($repo instanceof ComposerRepository && $repo->hasProviders()) {
|
|
|
|
foreach ($repo->getProviderNames() as $name) {
|
|
|
|
foreach ($repo->getProviderNames() as $name) {
|
|
|
|
|
|
|
|
if (preg_match($packageFilter, $name)) {
|
|
|
|
$packages[$type][$name] = $name;
|
|
|
|
$packages[$type][$name] = $name;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
foreach ($repo->getPackages() as $package) {
|
|
|
|
foreach ($repo->getPackages() as $package) {
|
|
|
|
if (!isset($packages[$type][$package->getName()])
|
|
|
|
if (!isset($packages[$type][$package->getName()])
|
|
|
|
|| !is_object($packages[$type][$package->getName()])
|
|
|
|
|| !is_object($packages[$type][$package->getName()])
|
|
|
|
|| version_compare($packages[$type][$package->getName()]->getVersion(), $package->getVersion(), '<')
|
|
|
|
|| version_compare($packages[$type][$package->getName()]->getVersion(), $package->getVersion(), '<')
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|
|
|
|
|
if (preg_match($packageFilter, $package->getName())) {
|
|
|
|
$packages[$type][$package->getName()] = $package;
|
|
|
|
$packages[$type][$package->getName()] = $package;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
$showAllTypes = $input->getOption('all');
|
|
|
|
$showAllTypes = $input->getOption('all');
|
|
|
|
$indent = $showAllTypes ? ' ' : '';
|
|
|
|
$indent = $showAllTypes ? ' ' : '';
|
|
|
|