mecano
Version:
Common functions for system deployment.
54 lines (49 loc) • 1.27 kB
JavaScript
// Generated by CoffeeScript 1.11.1
var diff, pad, string;
module.exports = function(oldStr, newStr, options) {
var count_added, count_removed, i, j, k, len, len1, len2, line, lines, ls, padsize, text;
if (oldStr == null) {
oldStr = '';
}
if (newStr == null) {
newStr = '';
}
lines = diff.diffLines(oldStr, newStr);
text = [];
count_added = count_removed = 0;
padsize = Math.ceil(lines.length / 10);
for (i = 0, len = lines.length; i < len; i++) {
line = lines[i];
if (line.value === null) {
continue;
}
if (!line.added && !line.removed) {
count_added++;
count_removed++;
continue;
}
ls = string.lines(line.value);
if (line.added) {
for (j = 0, len1 = ls.length; j < len1; j++) {
line = ls[j];
count_added++;
text.push((pad(padsize, '' + count_added)) + " + " + line);
}
} else {
for (k = 0, len2 = ls.length; k < len2; k++) {
line = ls[k];
count_removed++;
text.push((pad(padsize, '' + count_removed)) + " - " + line);
}
}
}
return {
raw: lines,
text: text.map(function(t) {
return t + "\n";
}).join('')
};
};
pad = require('pad');
diff = require('diff');
string = require('./string');