Exemplo n.º 1
0
 /**
  * Builds an object for parsing the command line arguments
  *
  * @return \r8\CLI\Command
  */
 public static function getArgParser()
 {
     $cmd = new \r8\CLI\Command('vocab', 'PHP documentation generator');
     $pathFilter = new \r8\Filter\Chain(new \r8\Filter\Printable(), new \r8\Curry\Call('trim'));
     $cmd->addArg(new \r8\CLI\Arg\One('Output Directory', $pathFilter, new \r8\Validator\All(\r8(new \r8\Validator\NotEmpty())->addError('Output directory must not be empty'), new \r8\Validator\Callback(function ($dir) {
         return is_file($dir) ? 'Path must not be an existing file: ' . $dir : NULL;
     }))));
     $inputValidator = new \r8\Validator\All(\r8(new \r8\Validator\NotEmpty())->addError('Input path must not be empty'), new \r8\Validator\Callback(function ($path) {
         return file_exists($path) ? NULL : 'Path does not exist: ' . $path;
     }));
     $cmd->addArg(new \r8\CLI\Arg\One('Input Path', $pathFilter, $inputValidator));
     $cmd->addArg(new \r8\CLI\Arg\Many('Input Path', $pathFilter, $inputValidator));
     // A command form for viewing help/version info
     $info = new \r8\CLI\Form();
     $cmd->addForm($info);
     $info->addOption(\r8(new \r8\CLI\Option('v', 'Outputs version information'))->addFlag('version'));
     $info->addOption(\r8(new \r8\CLI\Option('h', 'Displays the help screen'))->addFlag('help'));
     return $cmd;
 }
Exemplo n.º 2
0
 public function testGetHelp_MultipleForms()
 {
     $command = new \r8\CLI\Command('cmd', 'A description of this command');
     $command->addArg(new \r8\CLI\Arg\One("Arg1"));
     $command->addArg(new \r8\CLI\Arg\Many("Arg2"));
     $form = new \r8\CLI\Form();
     $form->addOption(new \r8\CLI\Option('help', 'Displays the help view'));
     $form->addOption(new \r8\CLI\Option('f', 'Performs an action'));
     $command->addForm($form);
     $this->assertSame("USAGE:\n" . "    cmd [Arg1] [Arg2]...\n" . "    cmd [--help,-f]\n\n" . "DESCRIPTION:\n" . "    A description of this command\n\n" . "OPTIONS:\n" . "    -f\n" . "        Performs an action\n" . "    --help\n" . "        Displays the help view\n\n", $command->getHelp());
 }