import * as fs from 'fs'; import * as path from 'path'; import * as readline from 'readline'; // Функция для обработки файлов в папке function processProjectSnapshots(project: string): void { const snapshotsDir = path.join( __dirname, '../../packages/react', project, 'src/lib/__image_snapshots__' ); if (!fs.existsSync(snapshotsDir)) { console.error(`Папка для проекта ${project} не найдена: ${snapshotsDir}`); return; } // console.log(`Обработка папки: ${snapshotsDir}`); const diffFilePath = path.join(snapshotsDir, 'diff.png'); const sampleFilePath = path.join(snapshotsDir, 'sample.png'); const newScreenshotPath = path.join(snapshotsDir, 'new_screenshot.png'); if (!fs.existsSync(newScreenshotPath)) return // Удаляем diff.png и sample.png, если они существуют if (fs.existsSync(diffFilePath)) { fs.unlinkSync(diffFilePath); // console.log(`Удалён файл: ${diffFilePath}`); } if (fs.existsSync(sampleFilePath)) { fs.unlinkSync(sampleFilePath); // console.log(`Удалён файл: ${sampleFilePath}`); } fs.renameSync(newScreenshotPath, sampleFilePath); } // Функция для получения списка проектов от пользователя function askProjects(): Promise { const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); return new Promise((resolve) => { rl.question('Введите список проектов через запятую: ', (answer) => { rl.close(); const projects = answer .split(',') .map((project) => project.trim()) .filter((project) => project.length > 0); resolve(projects); }); }); } // Основная функция async function main() { // const projects = await askProjects(); const projects = fs.readdirSync(path.join(__dirname, '../../packages/react')) // console.log(projects) // return if (projects.length === 0) { console.error('Ошибка: список проектов пуст'); process.exit(1); } console.log(`Начало обработки проектов: ${projects.join(', ')}`); projects.forEach((project) => { processProjectSnapshots(project); }); console.log('Обработка завершена.'); } // Запуск основной функции main();