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 testProcessCustomDirective() { $this->_createFile($file = 'foo.js', <<<EOD //#define wow "hey" foo EOD ); $builder = new lmbJsPreprocessor(); $builder->addDirective('define', array('CustomDirectiveProcessor', 'processDefine')); $expected = <<<EOD var wow = "hey"; foo EOD; $this->assertEqual($builder->processFile($this->_getFile($file)), $expected); }