protected function describeCommand(Command $command, array $options = [])
{
$command->getSynopsis();
$command->mergeApplicationDefinition(false);
$this->writeText("<comment>Command:</comment> " . $command->getName(), $options);
$aliases = $command instanceof CommandBase ? $command->getVisibleAliases() : $command->getAliases();
if ($aliases) {
$this->writeText("\n");
$this->writeText('<comment>Aliases:</comment> ' . implode(', ', $aliases), $options);
}
if ($description = $command->getDescription()) {
$this->writeText("\n");
$this->writeText("<comment>Description:</comment> {$description}", $options);
}
$this->writeText("\n\n");
$this->writeText('<comment>Usage:</comment>', $options);
$this->writeText("\n");
$this->writeText(' ' . $command->getSynopsis(), $options);
$this->writeText("\n");
if ($definition = $command->getNativeDefinition()) {
$this->writeText("\n");
$this->describeInputDefinition($definition, $options);
$this->writeText("\n");
}
if ($help = $command->getProcessedHelp()) {
$this->writeText("\n");
$this->writeText('<comment>Help:</comment>', $options);
$this->writeText("\n");
$this->writeText(' ' . str_replace("\n", "\n ", $help), $options);
$this->writeText("\n");
}
if ($command instanceof CommandBase && ($examples = $command->getExamples())) {
$this->writeText("\n");
$this->writeText('<comment>Examples:</comment>', $options);
$name = $command->getName();
foreach ($examples as $arguments => $description) {
$this->writeText("\n {$description}:\n <info>" . $this->cliExecutableName . " {$name} {$arguments}</info>\n");
}
}
}