38 lines
		
	
	
		
			976 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			976 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*jshint node:true */
 | |
| 
 | |
| /*
 | |
|     usage: node /path/to/node.js /path/to/linter/ ["{option1:true,option2:false}"]
 | |
|     */
 | |
| 
 | |
| var _fs = require('fs'),
 | |
|     _util = require('util'),
 | |
|     _path = require('path'),
 | |
|     linterPath = process.argv[2].replace(/\/$/, '') + '/',
 | |
|     _linter = require(linterPath + 'linter');
 | |
| 
 | |
| function run() {
 | |
|     var code = '',
 | |
|         results,
 | |
|         config = JSON.parse(process.argv[3] || '{}'),
 | |
|         filename = process.argv[4] || '';
 | |
| 
 | |
|     if (filename) {
 | |
|         results = _linter.lint(_fs.readFileSync(filename, 'utf-8'), config, linterPath);
 | |
|         _util.puts(JSON.stringify(results));
 | |
|     } else {
 | |
|         process.stdin.resume();
 | |
|         process.stdin.setEncoding('utf8');
 | |
| 
 | |
|         process.stdin.on('data', function (chunk) {
 | |
|             code += chunk;
 | |
|         });
 | |
| 
 | |
|         process.stdin.on('end', function () {
 | |
|             results = _linter.lint(code, config, linterPath);
 | |
|             _util.puts(JSON.stringify(results));
 | |
|         });
 | |
|     }
 | |
| }
 | |
| 
 | |
| run();
 |