mirror of
https://github.com/crazywhalecc/static-php-cli.git
synced 2026-07-20 15:25:36 +08:00
Allow shell completion for build:libs command
This commit is contained in:
@@ -6,8 +6,10 @@ namespace StaticPHP\Command;
|
|||||||
|
|
||||||
use StaticPHP\Artifact\DownloaderOptions;
|
use StaticPHP\Artifact\DownloaderOptions;
|
||||||
use StaticPHP\Package\PackageInstaller;
|
use StaticPHP\Package\PackageInstaller;
|
||||||
|
use StaticPHP\Registry\PackageLoader;
|
||||||
use StaticPHP\Util\V2CompatLayer;
|
use StaticPHP\Util\V2CompatLayer;
|
||||||
use Symfony\Component\Console\Attribute\AsCommand;
|
use Symfony\Component\Console\Attribute\AsCommand;
|
||||||
|
use Symfony\Component\Console\Completion\CompletionInput;
|
||||||
use Symfony\Component\Console\Input\InputArgument;
|
use Symfony\Component\Console\Input\InputArgument;
|
||||||
use Symfony\Component\Console\Input\InputOption;
|
use Symfony\Component\Console\Input\InputOption;
|
||||||
|
|
||||||
@@ -16,7 +18,19 @@ class BuildLibsCommand extends BaseCommand
|
|||||||
{
|
{
|
||||||
public function configure(): void
|
public function configure(): void
|
||||||
{
|
{
|
||||||
$this->addArgument('libraries', InputArgument::REQUIRED, 'The library packages will be compiled, comma separated');
|
$this->addArgument(
|
||||||
|
'libraries',
|
||||||
|
InputArgument::REQUIRED,
|
||||||
|
'The library packages will be compiled, comma separated',
|
||||||
|
suggestedValues: function (CompletionInput $input) {
|
||||||
|
$packages = [];
|
||||||
|
foreach (PackageLoader::getPackages(['target', 'library']) as $name => $_) {
|
||||||
|
$packages[] = $name;
|
||||||
|
}
|
||||||
|
$val = $input->getCompletionValue();
|
||||||
|
return array_filter($packages, fn ($name) => str_starts_with($name, $val));
|
||||||
|
}
|
||||||
|
);
|
||||||
// Builder options
|
// Builder options
|
||||||
$this->getDefinition()->addOptions([
|
$this->getDefinition()->addOptions([
|
||||||
new InputOption('with-suggests', ['L', 'E'], null, 'Resolve and install suggested packages as well'),
|
new InputOption('with-suggests', ['L', 'E'], null, 'Resolve and install suggested packages as well'),
|
||||||
|
|||||||
Reference in New Issue
Block a user