mecano
Version:
Common functions for system deployment.
61 lines (56 loc) • 1.64 kB
JavaScript
// Generated by CoffeeScript 1.9.1
var diff, pad, string;
module.exports = function(source, target, options) {
var count_added, count_removed, i, len, line, lines, ls, padsize, results;
if (!options.diff) {
return;
}
lines = diff.diffLines(target, source);
if (typeof options.diff === 'function') {
options.diff(lines);
}
if (options.stdout) {
count_added = count_removed = 0;
padsize = Math.ceil(lines.length / 10);
results = [];
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) {
results.push((function() {
var j, len1, results1;
results1 = [];
for (j = 0, len1 = ls.length; j < len1; j++) {
line = ls[j];
count_added++;
results1.push(options.stdout.write((pad(padsize, '' + count_added)) + " + " + line + "\n"));
}
return results1;
})());
} else {
results.push((function() {
var j, len1, results1;
results1 = [];
for (j = 0, len1 = ls.length; j < len1; j++) {
line = ls[j];
count_removed++;
results1.push(options.stdout.write((pad(padsize, '' + count_removed)) + " - " + line + "\n"));
}
return results1;
})());
}
}
return results;
}
};
pad = require('pad');
diff = require('diff');
string = require('./string');