52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/*jshint boss: true, evil: true */
 | 
						|
/*globals load quit readline lint JSHINT */
 | 
						|
 | 
						|
// usage:
 | 
						|
//   jsc ${envHome}/jsc.js -- /path/to/linter/ ${lineCount} {option1:true,option2:false}
 | 
						|
 | 
						|
var USING_JSC = true,
 | 
						|
    LINTER_PATH = arguments[0].replace(/\/$/, '') + '/';
 | 
						|
 | 
						|
var require = function (file) {
 | 
						|
        load(LINTER_PATH + file.replace(/\.js$/, '') + '.js');
 | 
						|
        return this;
 | 
						|
    },
 | 
						|
    exports = {};
 | 
						|
 | 
						|
require('linter');
 | 
						|
 | 
						|
if (typeof exports.lint === 'undefined') {
 | 
						|
    print('JSC: Could not load linter.js.');
 | 
						|
    quit();
 | 
						|
}
 | 
						|
 | 
						|
var process = function (args) {
 | 
						|
    var opts,
 | 
						|
        lineCount = parseInt(args[1], 10);
 | 
						|
 | 
						|
    if (isNaN(lineCount)) {
 | 
						|
        print('JSC: Must provide number of lines to read from stdin.');
 | 
						|
        quit();
 | 
						|
    }
 | 
						|
 | 
						|
    try {
 | 
						|
        opts = JSON.parse(args[2]);
 | 
						|
    } catch (e) {
 | 
						|
    } finally {
 | 
						|
        if (!opts) opts = {};
 | 
						|
    }
 | 
						|
 | 
						|
    var code = readline();
 | 
						|
 | 
						|
    for (var i = 0; i < lineCount; ++i) {
 | 
						|
        code += '\n' + readline();
 | 
						|
    }
 | 
						|
 | 
						|
    var results = exports.lint(code, opts);
 | 
						|
 | 
						|
    print(JSON.stringify(results));
 | 
						|
    quit();
 | 
						|
};
 | 
						|
 | 
						|
process(arguments);
 |