| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- // @ts-check
- const { promises: fsPromises } = require('fs');
- const fse = require('fs-extra');
- const { readFileByLine } = require('./fetch-remote-text-by-line');
- /**
- * @param {string[]} linesA
- * @param {string} filePath
- */
- async function compareAndWriteFile(linesA, filePath) {
- await fse.ensureFile(filePath);
- let isEqual = true;
- let index = 0;
- for await (const lineB of readFileByLine(filePath)) {
- const lineA = linesA[index];
- index++;
- if (lineA[0] === '#' && lineB[0] === '#') {
- continue;
- }
- if (lineA !== lineB) {
- isEqual = false;
- break;
- }
- }
- if (!isEqual) {
- await fsPromises.writeFile(
- filePath,
- linesA.join('\n'),
- { encoding: 'utf-8' }
- );
- } else {
- console.log(`Same Content, bail out writing: ${filePath}`);
- }
- }
- module.exports.compareAndWriteFile = compareAndWriteFile;
|