123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- // Generated by CoffeeScript 1.12.7
- (function() {
- var colorize, diff, fs, tty;
- fs = require('fs');
- tty = require('tty');
- diff = require('./index').diff;
- colorize = require('./colorize').colorize;
- module.exports = function(argv) {
- var data1, data2, json1, json2, options, result;
- options = require('dreamopt')(["Usage: json-diff [-vjCk] first.json second.json", "Arguments:", " first.json Old file #var(file1) #required", " second.json New file #var(file2) #required", "General options:", " -v, --verbose Output progress info", " -C, --[no-]color Colored output", " -j, --raw-json Display raw JSON encoding of the diff #var(raw)", " -k, --keys-only Compare only the keys, ignore the differences in values #var(keysOnly)"], argv);
- if (options.verbose) {
- process.stderr.write((JSON.stringify(options, null, 2)) + "\n");
- }
- if (options.verbose) {
- process.stderr.write("Loading files...\n");
- }
- data1 = fs.readFileSync(options.file1, 'utf8');
- data2 = fs.readFileSync(options.file2, 'utf8');
- if (options.verbose) {
- process.stderr.write("Parsing old file...\n");
- }
- json1 = JSON.parse(data1);
- if (options.verbose) {
- process.stderr.write("Parsing new file...\n");
- }
- json2 = JSON.parse(data2);
- if (options.verbose) {
- process.stderr.write("Running diff...\n");
- }
- result = diff(json1, json2, options);
- if (options.color == null) {
- options.color = tty.isatty(process.stdout.fd);
- }
- if (result) {
- if (options.raw) {
- if (options.verbose) {
- process.stderr.write("Serializing JSON output...\n");
- }
- process.stdout.write(JSON.stringify(result, null, 2));
- } else {
- if (options.verbose) {
- process.stderr.write("Producing colored output...\n");
- }
- process.stdout.write(colorize(result, {
- color: options.color
- }));
- }
- } else {
- if (options.verbose) {
- process.stderr.write("No diff");
- }
- }
- if (result) {
- return process.exit(1);
- }
- };
- }).call(this);
|