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