git-arweave-lfs
Version:
A Git extension for versioning large files with Arweave storage
41 lines • 1.49 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.diffDriver = void 0;
const fs_1 = require("fs");
const crypto_1 = require("crypto");
const diffDriver = () => {
try {
const args = process.argv.slice(3);
if (args.length < 7) {
console.log('Binary files differ');
return;
}
const [path, oldFile, oldHex, oldMode, newFile, newHex, newMode] = args;
if (!(0, fs_1.existsSync)(oldFile) || !(0, fs_1.existsSync)(newFile)) {
console.log('Binary files differ');
return;
}
const oldStats = (0, fs_1.statSync)(oldFile);
const newStats = (0, fs_1.statSync)(newFile);
if (oldStats.size !== newStats.size) {
console.log(`Binary files ${path} differ`);
return;
}
const oldBuffer = (0, fs_1.readFileSync)(oldFile);
const newBuffer = (0, fs_1.readFileSync)(newFile);
const oldHash = (0, crypto_1.createHash)('sha256').update(oldBuffer).digest('hex');
const newHash = (0, crypto_1.createHash)('sha256').update(newBuffer).digest('hex');
if (oldHash === newHash) {
return;
}
else {
console.log(`Binary files ${path} differ`);
}
}
catch (error) {
console.error(`Error in diff driver: ${error}`);
console.log('Binary files differ');
}
};
exports.diffDriver = diffDriver;
//# sourceMappingURL=diff.js.map
;