38 lines
870 B
38 lines
870 B
|
|
|
|
const fs = require('fs');
|
|
|
|
|
|
function all_eql(a, b) {
|
|
if (a.length !== b.length) {
|
|
return false;
|
|
}
|
|
const l = a.length;
|
|
for (let i = 0; i < l; i++) {
|
|
if (a[i] !== b[i]) {
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
function equals_ignore_spaces(a, b) {
|
|
const lines_a = a.split('\n').map(x => x.trim());
|
|
const lines_b = b.split('\n').map(x => x.trim());
|
|
return all_eql(lines_a, lines_b);
|
|
}
|
|
|
|
|
|
function writeIfDifferent(file, data, args) {
|
|
if (fs.existsSync(file)) {
|
|
let content = fs.readFileSync(file, args).toString(args.encoding);
|
|
if (equals_ignore_spaces(content, data)) {
|
|
console.log(`Skip update ${file}`);
|
|
return;
|
|
}
|
|
}
|
|
fs.writeFileSync(file, data, args);
|
|
console.log(` write to file ${file}`);
|
|
}
|
|
|
|
exports.writeIfDifferent = writeIfDifferent; |