Added option to only show available packages
Added the --available (-a) option to the show command to only list the available packages, similar to the --installed and --platform options. Additionally changed the output formatting when limiting the package result to remove the hierarchy when only one type is being showed. This facilitates parsing of a list of packages (for example for shell scripting and completion).pull/1574/head
parent
432955e0ae
commit
2552f4c65e
|
@ -43,6 +43,7 @@ class ShowCommand extends Command
|
||||||
new InputArgument('version', InputArgument::OPTIONAL, 'Version to inspect'),
|
new InputArgument('version', InputArgument::OPTIONAL, 'Version to inspect'),
|
||||||
new InputOption('installed', 'i', InputOption::VALUE_NONE, 'List installed packages only'),
|
new InputOption('installed', 'i', InputOption::VALUE_NONE, 'List installed packages only'),
|
||||||
new InputOption('platform', 'p', InputOption::VALUE_NONE, 'List platform packages only'),
|
new InputOption('platform', 'p', InputOption::VALUE_NONE, 'List platform packages only'),
|
||||||
|
new InputOption('available', 'a', InputOption::VALUE_NONE, 'List available packages only'),
|
||||||
new InputOption('self', 's', InputOption::VALUE_NONE, 'Show the root package information'),
|
new InputOption('self', 's', InputOption::VALUE_NONE, 'Show the root package information'),
|
||||||
new InputOption('dev', null, InputOption::VALUE_NONE, 'Enables display of dev-require packages.'),
|
new InputOption('dev', null, InputOption::VALUE_NONE, 'Enables display of dev-require packages.'),
|
||||||
))
|
))
|
||||||
|
@ -78,6 +79,9 @@ EOT
|
||||||
$repos = $installedRepo = $platformRepo;
|
$repos = $installedRepo = $platformRepo;
|
||||||
} elseif ($input->getOption('installed')) {
|
} elseif ($input->getOption('installed')) {
|
||||||
$repos = $installedRepo = $getRepositories($this->getComposer(), $input->getOption('dev'));
|
$repos = $installedRepo = $getRepositories($this->getComposer(), $input->getOption('dev'));
|
||||||
|
} elseif ($input->getOption('available')) {
|
||||||
|
$installedRepo = $platformRepo;
|
||||||
|
$repos = new CompositeRepository(Factory::createDefaultRepositories($this->getIO()));
|
||||||
} elseif ($composer = $this->getComposer(false)) {
|
} elseif ($composer = $this->getComposer(false)) {
|
||||||
$localRepo = $getRepositories($composer, $input->getOption('dev'));
|
$localRepo = $getRepositories($composer, $input->getOption('dev'));
|
||||||
$installedRepo = new CompositeRepository(array($localRepo, $platformRepo));
|
$installedRepo = new CompositeRepository(array($localRepo, $platformRepo));
|
||||||
|
@ -137,12 +141,17 @@ EOT
|
||||||
|
|
||||||
foreach (array('<info>platform</info>:' => true, '<comment>available</comment>:' => false, '<info>installed</info>:' => true) as $type => $showVersion) {
|
foreach (array('<info>platform</info>:' => true, '<comment>available</comment>:' => false, '<info>installed</info>:' => true) as $type => $showVersion) {
|
||||||
if (isset($packages[$type])) {
|
if (isset($packages[$type])) {
|
||||||
$output->writeln($type);
|
$tree = !$input->getOption('platform') && !$input->getOption('installed') && !$input->getOption('available');
|
||||||
|
if ($tree) {
|
||||||
|
$output->writeln($type);
|
||||||
|
}
|
||||||
ksort($packages[$type]);
|
ksort($packages[$type]);
|
||||||
foreach ($packages[$type] as $package) {
|
foreach ($packages[$type] as $package) {
|
||||||
$output->writeln(' '.$package->getPrettyName() .' '.($showVersion ? '['.$this->versionParser->formatVersion($package).']' : '').' <comment>:</comment> '. strtok($package->getDescription(), "\r\n"));
|
$output->writeln(($tree ? ' ' : '').$package->getPrettyName().' '.($showVersion ? '['.$this->versionParser->formatVersion($package).']' : '').' <comment>:</comment> '. strtok($package->getDescription(), "\r\n"));
|
||||||
|
}
|
||||||
|
if ($tree) {
|
||||||
|
$output->writeln('');
|
||||||
}
|
}
|
||||||
$output->writeln('');
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue