| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- #!/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);
- }
- });
|