Spaces:
Configuration error
Configuration error
| const fs = require('fs'); | |
| const path = require('path'); | |
| const os = require('os'); | |
| const DOWNLOADS_DIR = path.join(os.homedir(), 'Downloads'); | |
| const PROJECT_ROOT = path.join(__dirname, '..'); | |
| const TARGET_DIR = path.join(PROJECT_ROOT, 'public', 'data'); | |
| const TARGET_FILENAME = 'font-map.json'; | |
| console.log(`👀 Watching for font-map*.json in ${DOWNLOADS_DIR}...`); | |
| console.log(`🎯 Target: ${path.join(TARGET_DIR, TARGET_FILENAME)}`); | |
| // Fonction pour déplacer le fichier | |
| function moveFile(filename) { | |
| const sourcePath = path.join(DOWNLOADS_DIR, filename); | |
| const targetPath = path.join(TARGET_DIR, TARGET_FILENAME); | |
| try { | |
| // Vérifier si le fichier existe encore (il peut avoir été déplacé ou supprimé rapidement) | |
| if (!fs.existsSync(sourcePath)) return; | |
| // Attendre un peu que le téléchargement soit fini (écriture disque) | |
| const size = fs.statSync(sourcePath).size; | |
| if (size === 0) return; | |
| console.log(`📦 Detected ${filename}, moving and renaming to ${TARGET_FILENAME}...`); | |
| // Copier puis supprimer | |
| fs.copyFileSync(sourcePath, targetPath); | |
| fs.unlinkSync(sourcePath); | |
| console.log(`✅ Moved ${filename} to public/data/${TARGET_FILENAME}`); | |
| console.log('✨ You can now reload the FontMap page!'); | |
| } catch (err) { | |
| // Ignorer les erreurs silencieuses (fichiers temporaires de téléchargement .crdownload etc) | |
| } | |
| } | |
| // Vérifier les fichiers existants au démarrage | |
| try { | |
| const files = fs.readdirSync(DOWNLOADS_DIR); | |
| files.forEach(file => { | |
| if (file.startsWith('font-map') && file.endsWith('.json')) { | |
| moveFile(file); | |
| } | |
| }); | |
| } catch (e) { | |
| console.error('Error scanning downloads:', e); | |
| } | |
| // Surveiller le dossier | |
| let processing = false; | |
| fs.watch(DOWNLOADS_DIR, (eventType, filename) => { | |
| if (filename && filename.startsWith('font-map') && filename.endsWith('.json') && !processing) { | |
| processing = true; | |
| // Petit délai pour laisser le temps au système de fichiers | |
| setTimeout(() => { | |
| moveFile(filename); | |
| processing = false; | |
| }, 1000); | |
| } | |
| }); | |