63 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			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),
 | |
|     ]);
 | |
|   }
 | |
| });
 |