Beispiel #1
0
 function build($argv)
 {
     $input = new lmbCliInput();
     $input->setMinimumArguments(2);
     $input->read($argv, false);
     $arguments = $input->getArguments();
     if (!($dest_file = array_pop($arguments))) {
         echo "Error: You must specify output file.\n";
         return 1;
     }
     $src_files = array();
     foreach ($arguments as $src_file) {
         $src_files[] = realpath($src_file);
     }
     if (empty($src_files)) {
         echo "Error: You must specify at least one input file.\n";
         return 1;
     }
     $builder = new lmbJsPreprocessor();
     try {
         $contents = $builder->processFiles($src_files);
     } catch (lmbException $e) {
         echo 'Build error: ' . $e->getMessage();
         return 1;
     }
     lmbFs::safeWrite($dest_file, $contents);
     return 0;
 }
Beispiel #2
0
 function create($argv)
 {
     $input = new lmbCliInput();
     $input->setMinimumArguments(1);
     if (!$input->read($argv, false)) {
         $this->help($argv);
         return 1;
     }
     $dst_dir = $input->getArgument(0);
     if (file_exists($dst_dir)) {
         echo "Directory or file '{$dst_dir}' already exists\n";
         return 1;
     }
     echo "Copying skeleton Limb3 WEB_APP application to '{$dst_dir}'...\n";
     lmbFs::cp(dirname(__FILE__) . '/../skel', $dst_dir, '~^\\.svn~');
     echo "Generating code from templates...\n";
     $this->_resolveTemplate("{$dst_dir}/setup.override.php.tpl", array('%LIMB_PARENT_DIR%' => realpath(dirname(__FILE__) . '/../../../')));
     echo "done!";
 }
Beispiel #3
0
 function updateTranslations($argv)
 {
     $input = new lmbCliInput('t|test');
     $input->read($argv, false);
     $dry_run = $input->isOptionPresent('t');
     $input_dir = realpath($input->getArgument(0, '.'));
     if (!$input_dir) {
         $this->_error('Input directory is not valid');
     }
     $output_dir = realpath($input->getArgument(1, $input_dir . '/i18n/translations'));
     if (!$output_dir) {
         $this->_error('Output directory is not valid');
     }
     $qt = new lmbQtDictionaryBackend();
     $qt->setSearchPath($output_dir);
     $util = new lmbDictionaryUpdater($qt, $this->output);
     if ($dry_run) {
         $util->dryrun($input_dir);
     } else {
         $util->updateTranslations($input_dir);
     }
     return 0;
 }
    function testPassArgvToAction()
    {
        $input = new lmbCliInput();
        $output = new lmbCliResponse();
        $input->strictMode(false);
        $input->read(array('foo.php', $cmd = $this->_randomName(), 'foo', '--dry-run', '-c', 'bar'));
        $runner = new lmbCliRunner($input, $output);
        $runner->setCommandSearchPath($this->tmp_dir);
        $runner->returnOnExit();
        $runner->throwOnError();
        $this->_createCommandClass($cmd, 'function foo($argv){var_dump($argv);}');
        ob_start();
        $runner->execute();
        $str = ob_get_contents();
        ob_end_clean();
        $expected = <<<EOD
array(3) {
  [0]=>
  string(9) "--dry-run"
  [1]=>
  string(2) "-c"
  [2]=>
  string(3) "bar"
}

EOD;
        $this->assertEqual($expected, $str);
    }
 function testUseRelaxedMode()
 {
     $argv = array('foo.php', 'arg1', '--opt1', 'arg2', 'arg3');
     $cli = new lmbCliInput();
     $cli->strictMode(false);
     $this->assertTrue($cli->read($argv));
     $this->assertTrue($cli->hasOption('opt1'));
     $this->assertEqual($cli->getArguments(), array('arg1', 'arg2', 'arg3'));
 }
 function testProcessCommandValidateResult_Negative()
 {
     $input = new lmbCliInput();
     $output = new lmbCliOutput();
     $input->read(array('foo.php', '--required_param'));
     $runner = new lmbCliRunner($input, $output);
     $runner->returnOnExit();
     $file = $this->_createCommandClass('TestProcessCommandValidateResult_Negative', 'function execute() { echo "execute"; }', 'function validate() { echo "invalid"; return false; }', 'function help() { return "help"; }');
     ob_start();
     $runner->execute($file);
     $str = ob_get_contents();
     ob_end_clean();
     $this->assertEqual('invalidhelp', $str);
 }