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