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