48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
var prettyjson = require('../lib/prettyjson');
|
|
var fs=require('fs');
|
|
var argv = require('minimist')(process.argv.slice(2));
|
|
|
|
var options = {
|
|
keysColor: argv.keys || process.env.PRETTYJSON_KEYS,
|
|
dashColor: argv.dash || process.env.PRETTYJSON_DASH,
|
|
defaultIndentation: argv.indent || process.env.PRETTYJSON_INDENT,
|
|
stringColor: argv.string || process.env.PRETTYJSON_STRING,
|
|
numberColor: argv.number || process.env.PRETTYJSON_NUMBER,
|
|
noColor: argv['nocolor'] || process.env.PRETTYJSON_NOCOLOR
|
|
};
|
|
|
|
var renderInputJson = function(input){
|
|
console.log(prettyjson.renderString(input, options));
|
|
};
|
|
|
|
if (argv._.length) {
|
|
// First parameter is the file to read and parse
|
|
var filename = argv._[0];
|
|
try {
|
|
renderInputJson(fs.readFileSync(filename, 'utf8'));
|
|
} catch (e) {
|
|
console.error('Error: '.red + "File '" + filename + "' does not exist");
|
|
process.exit(1);
|
|
}
|
|
} else {
|
|
// Read input stream
|
|
|
|
var streamData = '';
|
|
|
|
process.stdin.resume();
|
|
process.stdin.setEncoding('utf8');
|
|
process.stdin.on('data', function (chunk) {
|
|
if (chunk === '\n') {
|
|
renderInputJson(streamData);
|
|
streamData = '';
|
|
return;
|
|
}
|
|
streamData += chunk;
|
|
});
|
|
process.stdin.on('end', function(){
|
|
renderInputJson(streamData);
|
|
});
|
|
}
|