1 | #!/usr/bin/env node
|
2 | var args = require('nopt')({
|
3 | lang: String,
|
4 | debug: Boolean,
|
5 | version: Boolean,
|
6 | languages: Boolean,
|
7 | help: Boolean
|
8 | }, {
|
9 | h: '--help',
|
10 | v: '--version',
|
11 | l: '--lang'
|
12 | }, process.argv);
|
13 |
|
14 | var read = require('../lib/read');
|
15 | var hicat = require('../index');
|
16 |
|
17 | if (args.help) {
|
18 | console.log([
|
19 | 'Usage:',
|
20 | ' hicat [options] FILE',
|
21 | ' ... | hicat [options]',
|
22 | '',
|
23 | 'Options:',
|
24 | ' -h, --help print usage information',
|
25 | ' -v, --version show version info and exit',
|
26 | ' -l, --lang TYPE use a given language',
|
27 | ' --languages list available languages',
|
28 | ].join('\n'));
|
29 | process.exit(0);
|
30 | }
|
31 |
|
32 | if (args.version) {
|
33 | console.log(require('../package.json').version);
|
34 | process.exit(0);
|
35 | }
|
36 |
|
37 | if (args.debug) {
|
38 | process.env.HICAT_DEBUG = true;
|
39 | }
|
40 |
|
41 | if (args.languages) {
|
42 | console.log(hicat.listLanguages().sort().join("\n"));
|
43 | process.exit(0);
|
44 | }
|
45 |
|
46 | read.from(args.argv.remain, function (err, files) {
|
47 | if (err) throw err;
|
48 |
|
49 | for (var fname in files) {
|
50 | if (!files.hasOwnProperty(fname)) continue;
|
51 | var data = files[fname];
|
52 | var output = hicat(data, { filename: fname, lang: args.lang });
|
53 | if (process.env.HICAT_DEBUG) {
|
54 | console.log({ language: output.language });
|
55 | }
|
56 | process.stdout.write(output.ansi);
|
57 | }
|
58 | });
|
59 |
|