57 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php # -*- coding: utf-8 mode: php -*- vim:sw=2:sts=2:et:ai:si:sta:fenc=utf-8
 | |
| require(__DIR__.'/../../vendor/autoload.php');
 | |
| 
 | |
| use nur\cli\Application;
 | |
| use nur\cli\DynamicCommand;
 | |
| 
 | |
| class Test3DynamicCommand extends DynamicCommand {
 | |
|   const COMMANDS = [
 | |
|     "dyn1" => ["d1",
 | |
|       "help" => "dynamic command 1",
 | |
|       "cmd_args" => [
 | |
|         ["-o", "--d1-option"],
 | |
|         ["-v:", "--d1-value"],
 | |
|       ],
 | |
|     ],
 | |
|     "dyn2" => ["d2",
 | |
|       "help" => "dynamic command 2",
 | |
|       "cmd_args" => [
 | |
|         ["-o", "--d2-option"],
 | |
|         ["-v:", "--d2-value"],
 | |
|       ],
 | |
|     ],
 | |
|   ];
 | |
| }
 | |
| 
 | |
| Application::run(new class extends Application {
 | |
|   const ARGS = [
 | |
|     #"dynamic_command" => [self::class, "get_dynamic_command"],
 | |
|     "dynamic_command" => Test3DynamicCommand::class,
 | |
|     ["-o", "--option"],
 | |
|     ["-v:", "--value"],
 | |
|     ["static", "s",
 | |
|       "help" => "static command",
 | |
|       "cmd_args" => [
 | |
|         ["-o", "--s-option"],
 | |
|         ["-v:", "--s-value"],
 | |
|       ],
 | |
|     ],
 | |
|   ];
 | |
| 
 | |
|   static function get_dynamic_command(string $command): ?array {
 | |
|     switch ($command) {
 | |
|     case "d1": return Test3DynamicCommand::COMMANDS["d1"];
 | |
|     case "d2": return Test3DynamicCommand::COMMANDS["d2"];
 | |
|     default: return null;
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   private $option, $value, $args, $command;
 | |
| 
 | |
|   function main() {
 | |
|     Txx("option", $this->option, "value", $this->value);
 | |
|     Txx("args", $this->args);
 | |
|     Txx("command", $this->command);
 | |
|   }
 | |
| });
 |