UNPKG

2.21 kBJavaScriptView Raw
1// Generated by CoffeeScript 1.10.0
2(function() {
3 var argv, compileFile, compileStdIn, compiler, fs, mkdirp, opt, outputResult, path;
4
5 compiler = require('./compiler');
6
7 path = require('path');
8
9 mkdirp = require('mkdirp');
10
11 fs = require('fs');
12
13 opt = require('optimist').boolean('help').alias('h', 'help').describe('h', 'show this usage').describe('output', 'output folder').string('output').alias('o', 'output').describe('dest', 'output file name').string('filename').describe('filename', 'filename when reading from stdin').usage('Usage: $0 [options] files...');
14
15 argv = opt.argv;
16
17 if (argv.help) {
18 opt.showHelp();
19 process.exit(1);
20 }
21
22 outputResult = function(res, inpfn) {
23 var fn, p;
24 if (!argv.output && !argv.dest) {
25 console.log(res);
26 return;
27 }
28 p = argv.output != null ? path.resolve(argv.output) : process.cwd();
29 fn = argv.dest || (inpfn != null) && path.basename(inpfn);
30 fn = path.resolve(p, fn);
31 if (fn === inpfn) {
32 console.error("output to same file " + fn);
33 process.exit(1);
34 }
35 return fs.writeFileSync(fn, res);
36 };
37
38 compileStdIn = function(opts) {
39 var inp;
40 inp = '';
41 process.stdin.setEncoding("utf8");
42 process.stdin.on('readable', function() {
43 var chunk;
44 chunk = process.stdin.read();
45 if (chunk != null) {
46 return inp += chunk;
47 }
48 });
49 return process.stdin.on('end', function() {
50 var ref;
51 return outputResult(compiler.compile(inp, argv, (ref = argv.filename) != null ? ref : 'console'), argv.filename);
52 });
53 };
54
55 compileFile = function(c) {
56 var e, error, res;
57 try {
58 res = compiler.compileFile(c, argv);
59 } catch (error) {
60 e = error;
61 console.error(e + " while parsing file " + (path.resolve(c)));
62 process.exit(1);
63 }
64 return outputResult(res, c);
65 };
66
67 module.exports = function() {
68 var i, j, len, ref;
69 if (argv.output) {
70 mkdirp.sync(argv.output);
71 }
72 if (argv._.length) {
73 ref = argv._;
74 for (j = 0, len = ref.length; j < len; j++) {
75 i = ref[j];
76 compileFile(path.resolve(i));
77 }
78 } else {
79 compileStdIn();
80 }
81 };
82
83}).call(this);