nur-ture/tbin/test-application.php

63 lines
1.6 KiB
PHP
Executable File

#!/usr/bin/php
<?php
require __DIR__."/../vendor/autoload.php";
use nulib\app\cli\Application;
use nulib\output\msg;
Application::run(new class extends Application {
const ARGS = [
"purpose" => "tester la gestion des arguments",
"usage" => "-A|-a|-b",
"merge" => parent::ARGS,
["group",
["-A:", "--seta", "args" => "int", "name" => "a",
"help" => "spécifier a",
],
["--seta10", "name" => "a", "value" => 10],
["--seta20", "name" => "a", "value" => 20],
],
["-a", "--inca", "name" => "a",
"help" => "incrémenter a",
],
["-b", "--deca", "name" => "a", "inverse" => true,
"help" => "décrémenter a",
],
["-D::", "--override",
"help" => "++remplace celui de la section principale",
],
"sections" => [
[
"title" => "Section X",
"show" => false,
["group",
["-X:", "--setx", "args" => "int", "name" => "x",
"help" => "spécifier x",
],
["--setx10", "name" => "x", "value" => 10],
["--setx20", "name" => "x", "value" => 20],
],
["-x", "--incx", "name" => "x"],
["-y", "--decx", "name" => "x", "inverse" => true],
],
],
];
private ?int $a = null;
private ?int $x = null;
private ?string $override = null;
private ?array $args = null;
function main() {
msg::info([
"variables:",
"\na=", var_export($this->a, true),
"\nx=", var_export($this->x, true),
"\noverride=", var_export($this->override, true),
"\nargs=", var_export($this->args, true),
]);
}
});