blob: f386657399ab78dfeaf9a6f1d5a26f7e2f590900 [file] [log] [blame]
Leo Repp58b9f112021-11-22 11:57:47 +01001'use strict';
2
3var fs = require('fs');
4
5var BUF_SIZE = 16 * 1024;
6
7/* Compare two files by content. */
8function equalFiles(pathA, pathB) {
9 var statA = fs.lstatSync(pathA);
10 var statB = fs.lstatSync(pathB);
11 if (statA.size !== statB.size) {
12 return false;
13 }
14 var fdA = fs.openSync(pathA, 'r');
15 var fdB = fs.openSync(pathB, 'r');
16 var bufA = new Buffer(BUF_SIZE);
17 var bufB = new Buffer(BUF_SIZE);
18 var readA = 1;
19 var readB = 1;
20 while (readA > 0) {
21 readA = fs.readSync(fdA, bufA, 0, bufA.length, null);
22 readB = fs.readSync(fdB, bufB, 0, bufB.length, null);
23 if (readA !== readB) {
24 return false;
25 }
26 for (var i = 0; i < readA; i++) {
27 if (bufA[i] !== bufB[i]) {
28 return false;
29 }
30 }
31 }
32 fs.closeSync(fdA);
33 fs.closeSync(fdB);
34 return true;
35}
36
37module.exports.equalFiles = equalFiles;