Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2016
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //--------------------------------------------------------------------------------------------
  2. // Dependencies
  3. //--------------------------------------------------------------------------------------------
  4. var util        = require('util')
  5. ,request        = require('request')
  6. ,deep           = require('deep-diff')
  7. ,async          = require('async')
  8. ,co             = require('co')
  9. ,rp             = require('request-promise')
  10. ,fs             = require('fs');
  11.  
  12. //--------------------------------------------------------------------------------------------
  13. // The git posthook will pass the branch.
  14. //--------------------------------------------------------------------------------------------
  15. var argv = require('minimist')(process.argv.slice(2));
  16. var branch = argv.branch;
  17.  
  18. if(!branch) {
  19.     branch = 'DEFAULT';
  20. }
  21.  
  22. var DATADIRECTORY   = './data';
  23. var INPUT_DIR       = DATADIRECTORY + '/' + branch;
  24. var OUTPUT_DIR      = DATADIRECTORY + '/' + branch + '/results';
  25. var INPUTFILE       = INPUT_DIR + '/DEFAULT.json';
  26.  
  27. var lsDiffJSON = require(INPUTFILE);
  28.  
  29. async.forEach(lsDiffJSON, function(task, callback) {
  30.     var options1 = {
  31.         url: task.left,
  32.         json: true
  33.     };
  34.     var options2 = {
  35.         url: task.right,
  36.         json: true
  37.     };
  38.  
  39.     co(function* () {
  40.         var lhs;
  41.         var rhs;
  42.         var diffs;
  43.         rp = require('request-promise')
  44.  
  45.         lhs = yield rp(options1);
  46.         rhs = yield rp(options2)
  47.  
  48.         // do stuff after all requests
  49.         var differences = deep.diff(lhs, rhs, function(path, key) {
  50.             return task.ignoredProperties.indexOf(key) >= 0;
  51.         });
  52.  
  53.         if(!differences || differences == 'undefined') {
  54.             console.log("#---------------------------------------------------------------------");
  55.             console.log("# " + task.name + " - pass");
  56.             console.log("#---------------------------------------------------------------------");
  57.             diffs = 0;
  58.         } else {
  59.             diffs = differences.length;
  60.             console.log("#---------------------------------------------------------------------");
  61.             console.log("# " + task.name + " - " + diffs + " DIFFERENCES");
  62.             console.log("#---------------------------------------------------------------------");
  63.             console.log("# LEFT: " + task.left);
  64.             console.log("# RIGHT: " + task.right);
  65.             if(diffs > 0) {
  66.                 var dir = './data/'+branch;
  67.                 if (!fs.existsSync(dir)){
  68.                     fs.mkdirSync(dir);
  69.                 }
  70.                 var filename = "./data/"+branch+'/'+task.name+'.json';
  71.                 filename = filename.replace(' ','-');
  72.                 var stream = fs.createWriteStream(filename).write(JSON.stringify(differences));
  73.                 console.log("# Diff written to: " + filename);
  74.             }
  75.             console.log("#---------------------------------------------------------------------");
  76.         }
  77.     });
  78. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement