예제 #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;
 }
    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);
    }