cocos_lib/cmake/scripts/utils.js

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;