Exemple #1
0
f1.forEach(function(p1){

  var obj1 = info (p1);

  for (var i = 0; i < f2.length; i++) {

    var obj2 = info (f2[i]);

    if (obj2.name == obj1.name) {
      var cmp = vc(obj1.ver, obj2.ver);
      if (cmp == 1){
        console.log (obj1, '<--', obj2);
      }
      break;
    }
  }
});
Exemple #2
0
function compare (arch, current, previous){

  console.log ('comparing', arch, '...');
  
  var result = { arch: arch, updated : [], downgraded : [], added : [], removed : []};

  var a = current.split("\n");
  var b = previous.split("\n");
  var as = [];
  var bs = [];
  var dictA = {};
  var dictB = {};

  for (var i = 0; i < a.length; i++) {
    if (!a[i]) continue;
    var carr = a[i].split(' ');
    var cver = carr.pop();
    var cname = carr.pop();

    if (cname){
      dictA[cname] = cver;
    }
  }  

  for (var j = 0; j < b.length; j++) {
    if (!b[j]) continue;
    var parr = b[j].split(' ');
    var pver = parr.pop();
    var pname = parr.pop();

    if (pname) {
      dictB[pname] = pver; 
    }
  }

  as = Object.keys (dictA);
  bs = Object.keys (dictB);

  var reversed = as.length < bs.length;
  var intersection = _.intersection(as, bs);

  var tmp = [as];
  tmp = tmp.concat(intersection);
  var ao = _.without.apply (this, tmp);

  tmp = [bs];
  tmp = tmp.concat(intersection);
  var bo = _.without.apply (this, tmp);

  for (var k in dictA) {
    if (dictB[k]) {
      var cmp = vercmp(dictA[k], dictB[k]);
      if (cmp > 0){
        console.log ("updated", k, dictB[k], dictA[k])
        result.updated.push({ name : k, from : dictB[k], to: dictA[k]});
      } else if (cmp < 0) {
        console.log ("downgraded", k, dictB[k], dictA[k])
        result.downgraded.push({ name : k, from : dictB[k], to: dictA[k]});
      }
    }
  }

  for (var l = 0; l < ao.length; l++) {
    console.log ("added", ao[l], dictA[ao[l]])
    result.added.push({ name : ao[l], from : dictA[ao[l]] });
  }

  for (l = 0; l < bo.length; l++) {
    console.log ("removed", bo[l], dictB[bo[l]])
    result.removed.push({ name : bo[l], from : dictB[bo[l]] });
  }

  return result;
}