37 lines
875 B
PHP
37 lines
875 B
PHP
<?php
|
|
namespace nulib\app\cli;
|
|
|
|
use nulib\A;
|
|
|
|
/**
|
|
* Class Aogroup: groupe d'arguments fonctionnant ensemble
|
|
*/
|
|
class Aogroup extends Aolist {
|
|
function __construct(array $defs, bool $setup=false) {
|
|
$marker = A::pop($defs, 0);
|
|
if ($marker !== "group") {
|
|
throw ArgsException::invalid(null, "group");
|
|
}
|
|
# réordonner les clés numériques
|
|
$defs = array_merge($defs);
|
|
parent::__construct($defs, $setup);
|
|
}
|
|
|
|
function printHelp(?array $what=null): void {
|
|
$showGroup = $what["show"] ?? true;
|
|
if (!$showGroup) return;
|
|
|
|
$prefix = $what["prefix"] ?? null;
|
|
if ($prefix !== null) echo $prefix;
|
|
|
|
$firstAodef = null;
|
|
foreach ($this->all() as $aodef) {
|
|
$firstAodef ??= $aodef;
|
|
$aodef->printHelp(["help" => false]);
|
|
}
|
|
if ($firstAodef !== null) {
|
|
$firstAodef->printHelp(["options" => false]);
|
|
}
|
|
}
|
|
}
|