Files
cocos-engine/scripts/clear-cache.js
SijieWang 409b540b80 [Bug] Fix the error that occurs when executing clear on an empty warehouse (#16507)
Fix the error that occurs when executing clear on an empty warehouse
2023-11-14 16:31:43 +08:00

60 lines
1.7 KiB
JavaScript

const fs = require('fs');
const path = require('path');
const readline = require('readline');
let magenta;
try {
magenta = require('chalk').magenta;
} catch (error) {
magenta = (str) => str;
}
const prefix = ''.padStart(20, '=');
console.log(magenta(`${prefix} Clear cache ${prefix}`));
function deleteFolderRecursive (dirPath) {
if (fs.existsSync(dirPath)) {
if (fs.lstatSync(dirPath).isDirectory()) {
fs.readdirSync(dirPath).forEach((file) => {
const curPath = path.join(dirPath, file);
if (fs.lstatSync(curPath).isDirectory()) {
deleteFolderRecursive(curPath);
} else {
fs.unlinkSync(curPath);
}
});
fs.rmdirSync(dirPath);
console.log(`deleting: ${dirPath}`);
} else {
fs.unlinkSync(dirPath);
console.log(`Deleting ${dirPath}`);
}
} else {
console.log(`not exist, skip: ${dirPath}`);
}
}
const fileStream = fs.createReadStream(path.join(__dirname, '../.gitignore'));
const rl = readline.createInterface({
input: fileStream,
crlfDelay: Infinity,
});
const gitignoreFiles = [];
rl.on('line', (line) => {
if (line !== '' && !line.includes('native/external/') && !line.includes('!')) {
gitignoreFiles.push(path.join(__dirname, '..', line));
}
});
rl.on('close', () => {
console.log('=================== ready to delete ===================');
console.log(gitignoreFiles);
console.log('=================== processing ===================');
gitignoreFiles.forEach((dirPath) => {
deleteFolderRecursive(dirPath);
});
});