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);
 | 
						|
  }
 | 
						|
});
 |