mirror of
https://github.com/jashkenas/coffeescript.git
synced 2026-05-03 03:00:14 -04:00
added coffee --lint to the self-compiler's resume
This commit is contained in:
@@ -54,7 +54,13 @@
|
||||
}
|
||||
opts = this.options;
|
||||
return posix.cat(source).addCallback(function(code) {
|
||||
opts.tokens ? puts(coffee.tokenize(code).join(' ')) : opts.tree ? puts(coffee.tree(code).toString()) : opts.run ? eval(coffee.compile(code)) : opts.print ? puts(coffee.compile(code)) : exports.write_js(source, coffee.compile(code));
|
||||
var js;
|
||||
if (opts.tokens) {
|
||||
puts(coffee.tokenize(code).join(' '));
|
||||
} else {
|
||||
opts.tree ? puts(coffee.tree(code).toString()) : (js = coffee.compile(code));
|
||||
opts.run ? eval(js) : opts.print ? puts(js) : opts.lint ? exports.lint(js) : exports.write_js(source, coffee.compile(code));
|
||||
}
|
||||
return exports.compile_scripts();
|
||||
});
|
||||
};
|
||||
@@ -68,6 +74,23 @@
|
||||
return posix.write(fd, js);
|
||||
});
|
||||
};
|
||||
// Pipe compiled JS through JSLint (requires a working 'jsl' command).
|
||||
exports.lint = function lint(js) {
|
||||
var jsl;
|
||||
jsl = process.createChildProcess('jsl', ['-nologo', '-stdin']);
|
||||
jsl.addListener('output', function(result) {
|
||||
if (result) {
|
||||
return puts(result.replace(/\n/g, ''));
|
||||
}
|
||||
});
|
||||
jsl.addListener('errror', function(result) {
|
||||
if (result) {
|
||||
return puts(result);
|
||||
}
|
||||
});
|
||||
jsl.write(js);
|
||||
return jsl.close();
|
||||
};
|
||||
// Use OptionParser for all the options.
|
||||
exports.parse_options = function parse_options() {
|
||||
var oparser, opts, paths;
|
||||
|
||||
@@ -63,11 +63,14 @@ exports.compile_scripts: ->
|
||||
return unless source: @sources.shift()
|
||||
opts: @options
|
||||
posix.cat(source).addCallback (code) ->
|
||||
if opts.tokens then puts coffee.tokenize(code).join(' ')
|
||||
else if opts.tree then puts coffee.tree(code).toString()
|
||||
else if opts.run then eval coffee.compile code
|
||||
else if opts.print then puts coffee.compile code
|
||||
else exports.write_js source, coffee.compile code
|
||||
if opts.tokens then puts coffee.tokenize(code).join(' ')
|
||||
else if opts.tree then puts coffee.tree(code).toString()
|
||||
else
|
||||
js: coffee.compile code
|
||||
if opts.run then eval js
|
||||
else if opts.print then puts js
|
||||
else if opts.lint then exports.lint js
|
||||
else exports.write_js source, coffee.compile code
|
||||
exports.compile_scripts()
|
||||
|
||||
# Write out a JavaScript source file with the compiled code.
|
||||
@@ -78,6 +81,16 @@ exports.write_js: (source, js) ->
|
||||
posix.open(js_path, process.O_CREAT | process.O_WRONLY | process.O_TRUNC, 0755).addCallback (fd) ->
|
||||
posix.write(fd, js)
|
||||
|
||||
# Pipe compiled JS through JSLint (requires a working 'jsl' command).
|
||||
exports.lint: (js) ->
|
||||
jsl: process.createChildProcess('jsl', ['-nologo', '-stdin'])
|
||||
jsl.addListener 'output', (result) ->
|
||||
puts result.replace(/\n/g, '') if result
|
||||
jsl.addListener 'errror', (result) ->
|
||||
puts result if result
|
||||
jsl.write js
|
||||
jsl.close()
|
||||
|
||||
# Use OptionParser for all the options.
|
||||
exports.parse_options: ->
|
||||
opts: @options: {}
|
||||
|
||||
Reference in New Issue
Block a user