1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
| #!/usr/bin/env node
| var path = require('path');
| var precompile = require('../src/precompile').precompile;
| var Environment = require('../src/environment').Environment;
| var lib = require('../src/lib');
|
| var yargs = require('yargs')
|
| .usage('$0 [-f|--force] [-a|--filters <filters>] [-n|--name <name>] [-i|--include <regex>] [-x|--exclude <regex>] [-w|--wrapper <wrapper>] <path>')
| .wrap(80)
|
| .describe('help', 'Display this help message')
| .boolean('help')
| .alias('h', 'help')
| .alias('?', 'help')
|
| .describe('force', 'Force compilation to continue on error')
| .boolean('force')
| .alias('f', 'force')
|
| .describe('filters', 'Give the compiler a comma-delimited list of asynchronous filters, required for correctly generating code')
| .string('filters')
| .alias('a', 'filters')
|
| .describe('name', 'Specify the template name when compiling a single file')
| .string('name')
| .alias('n', 'n')
|
| .describe('include', 'Include a file or folder which match the regex but would otherwise be excluded. You can use this flag multiple times')
| .string('include' )
| .default('include', ['\\.html$', '\\.jinja$'])
| .alias('i', 'include')
|
| .describe('exclude', 'Exclude a file or folder which match the regex but would otherwise be included. You can use this flag multiple times')
| .string('exclude' )
| .default('exclude', [])
| .alias('x', 'exclude')
|
| .describe('wrapper', 'Load a external plugin to change the output format of the precompiled templates (for example, "-w custom" will load a module named "nunjucks-custom")')
| .string('wrapper')
| .alias('w', 'wrapper')
|
| .demand(1);
|
| var argv = yargs.argv;
|
| if (argv.help) {
| yargs.showHelp();
| process.exit(1);
| }
|
| var env = new Environment([]);
|
| lib.each([].concat(argv.filters).join(',').split(','), function(name) {
| env.addFilter(name.trim(), function() {}, true);
| });
|
| if(argv.wrapper) {
| argv.wrapper = require('nunjucks-' + argv.wrapper).wrapper;
| }
|
| console.log(precompile(argv._[0], {
| env : env,
| force : argv.force,
| name : argv.name,
| wrapper: argv.wrapper,
|
| include : [].concat(argv.include),
| exclude : [].concat(argv.exclude)
| }));
|
|