// Moved from project root to scripts directory for consistency // Node.js script to generate a list of all files in public, logos, and logos_gen for PWA caching const fs = require('fs'); const path = require('path'); const projectRoot = path.join(__dirname, '..'); const publicDir = path.join(projectRoot, 'public'); const logosDir = path.join(projectRoot, 'logos'); const logosGenDir = path.join(projectRoot, 'logos_gen'); // List of files to ignore const IGNORED_FILES = ['.DS_Store', 'CNAME', 'pwa-files-to-cache.json', '.gitignore']; function walkDir(dir, baseUrl = '') { let results = []; fs.readdirSync(dir).forEach(file => { if (IGNORED_FILES.includes(file)) return; // Ignore listed files const filePath = path.join(dir, file); const relPath = path.join(baseUrl, file).replace(/\\/g, '/'); if (fs.statSync(filePath).isDirectory()) { results = results.concat(walkDir(filePath, relPath)); } else { results.push('/' + relPath); } }); return results; } function safeWalkDir(dir, baseUrl = '') { if (!fs.existsSync(dir)) return []; return walkDir(dir, baseUrl); } const publicFiles = walkDir(publicDir, '').filter(f => !f.endsWith('sw.js')); const logosFiles = safeWalkDir(logosDir, 'logos'); const logosGenFiles = safeWalkDir(logosGenDir, 'logos_gen'); const allFiles = Array.from(new Set([...publicFiles, ...logosFiles, ...logosGenFiles])); fs.writeFileSync( path.join(publicDir, 'pwa-files-to-cache.json'), JSON.stringify(allFiles, null, 2) ); console.log('PWA files-to-cache list generated with', allFiles.length, 'files.');