You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			129 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			129 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
#!/usr/bin/env node
 | 
						|
 | 
						|
var optimist = require('optimist')
 | 
						|
    .usage('Precompile handlebar templates.\nUsage: $0 [template|directory]...', {
 | 
						|
      'f': {
 | 
						|
        'type': 'string',
 | 
						|
        'description': 'Output File',
 | 
						|
        'alias': 'output'
 | 
						|
      },
 | 
						|
      'map': {
 | 
						|
        'type': 'string',
 | 
						|
        'description': 'Source Map File'
 | 
						|
      },
 | 
						|
      'a': {
 | 
						|
        'type': 'boolean',
 | 
						|
        'description': 'Exports amd style (require.js)',
 | 
						|
        'alias': 'amd'
 | 
						|
      },
 | 
						|
      'c': {
 | 
						|
        'type': 'string',
 | 
						|
        'description': 'Exports CommonJS style, path to Handlebars module',
 | 
						|
        'alias': 'commonjs',
 | 
						|
        'default': null
 | 
						|
      },
 | 
						|
      'h': {
 | 
						|
        'type': 'string',
 | 
						|
        'description': 'Path to handlebar.js (only valid for amd-style)',
 | 
						|
        'alias': 'handlebarPath',
 | 
						|
        'default': ''
 | 
						|
      },
 | 
						|
      'k': {
 | 
						|
        'type': 'string',
 | 
						|
        'description': 'Known helpers',
 | 
						|
        'alias': 'known'
 | 
						|
      },
 | 
						|
      'o': {
 | 
						|
        'type': 'boolean',
 | 
						|
        'description': 'Known helpers only',
 | 
						|
        'alias': 'knownOnly'
 | 
						|
      },
 | 
						|
      'm': {
 | 
						|
        'type': 'boolean',
 | 
						|
        'description': 'Minimize output',
 | 
						|
        'alias': 'min'
 | 
						|
      },
 | 
						|
      'n': {
 | 
						|
        'type': 'string',
 | 
						|
        'description': 'Template namespace',
 | 
						|
        'alias': 'namespace',
 | 
						|
        'default': 'Handlebars.templates'
 | 
						|
      },
 | 
						|
      's': {
 | 
						|
        'type': 'boolean',
 | 
						|
        'description': 'Output template function only.',
 | 
						|
        'alias': 'simple'
 | 
						|
      },
 | 
						|
      'N': {
 | 
						|
        'type': 'string',
 | 
						|
        'description': 'Name of passed string templates. Optional if running in a simple mode. Required when operating on multiple templates.',
 | 
						|
        'alias': 'name'
 | 
						|
      },
 | 
						|
      'i': {
 | 
						|
        'type': 'string',
 | 
						|
        'description': 'Generates a template from the passed CLI argument.\n"-" is treated as a special value and causes stdin to be read for the template value.',
 | 
						|
        'alias': 'string'
 | 
						|
      },
 | 
						|
      'r': {
 | 
						|
        'type': 'string',
 | 
						|
        'description': 'Template root. Base value that will be stripped from template names.',
 | 
						|
        'alias': 'root'
 | 
						|
      },
 | 
						|
      'p': {
 | 
						|
        'type': 'boolean',
 | 
						|
        'description': 'Compiling a partial template',
 | 
						|
        'alias': 'partial'
 | 
						|
      },
 | 
						|
      'd': {
 | 
						|
        'type': 'boolean',
 | 
						|
        'description': 'Include data when compiling',
 | 
						|
        'alias': 'data'
 | 
						|
      },
 | 
						|
      'e': {
 | 
						|
        'type': 'string',
 | 
						|
        'description': 'Template extension.',
 | 
						|
        'alias': 'extension',
 | 
						|
        'default': 'handlebars'
 | 
						|
      },
 | 
						|
      'b': {
 | 
						|
        'type': 'boolean',
 | 
						|
        'description': 'Removes the BOM (Byte Order Mark) from the beginning of the templates.',
 | 
						|
        'alias': 'bom'
 | 
						|
      },
 | 
						|
      'v': {
 | 
						|
        'type': 'boolean',
 | 
						|
        'description': 'Prints the current compiler version',
 | 
						|
        'alias': 'version'
 | 
						|
      },
 | 
						|
 | 
						|
      'help': {
 | 
						|
        'type': 'boolean',
 | 
						|
        'description': 'Outputs this message'
 | 
						|
      }
 | 
						|
    })
 | 
						|
 | 
						|
    .wrap(120)
 | 
						|
    .check(function(argv) {
 | 
						|
      if (argv.version) {
 | 
						|
        return;
 | 
						|
      }
 | 
						|
    });
 | 
						|
 | 
						|
 | 
						|
var argv = optimist.argv;
 | 
						|
argv.files = argv._;
 | 
						|
delete argv._;
 | 
						|
 | 
						|
var Precompiler = require('../dist/cjs/precompiler');
 | 
						|
Precompiler.loadTemplates(argv, function(err, opts) {
 | 
						|
  if (err) {
 | 
						|
    throw err;
 | 
						|
  }
 | 
						|
 | 
						|
  if (opts.help || (!opts.templates.length && !opts.version)) {
 | 
						|
    optimist.showHelp();
 | 
						|
  } else {
 | 
						|
    Precompiler.cli(opts);
 | 
						|
  }
 | 
						|
});
 |