#!/usr/bin/env node // Script de migration des console.log vers logSh const fs = require('fs'); const path = require('path'); // Fonction pour parcourir récursivement les fichiers function walkSync(dir, filelist = []) { const files = fs.readdirSync(dir); files.forEach(file => { const filepath = path.join(dir, file); const stat = fs.statSync(filepath); if (stat.isDirectory()) { // Skip certains dossiers if (!['node_modules', '.git', 'export_logger'].includes(file)) { filelist = walkSync(filepath, filelist); } } else if (file.endsWith('.js') && !file.startsWith('migrate-')) { filelist.push(filepath); } }); return filelist; } // Fonction pour migrer un fichier function migrateFile(filepath) { console.log(`🔄 Migration: ${filepath}`); let content = fs.readFileSync(filepath, 'utf8'); let modified = false; // Remplacements avec mapping vers logSh const replacements = [ // console.log -> logSh avec niveau INFO { pattern: /console\.log\((.*?)\);?/g, replacement: (match, args) => { // Si c'est déjà un template string avec des variables, le garder tel quel if (args.includes('`') || args.includes('${')) { return `logSh(${args}, 'INFO');`; } // Sinon, traiter normalement return `logSh(${args}, 'INFO');`; } }, // console.warn -> logSh avec niveau WARN { pattern: /console\.warn\((.*?)\);?/g, replacement: (match, args) => { return `logSh(${args}, 'WARN');`; } }, // console.error -> logSh avec niveau ERROR { pattern: /console\.error\((.*?)\);?/g, replacement: (match, args) => { return `logSh(${args}, 'ERROR');`; } } ]; // Appliquer les remplacements replacements.forEach(({ pattern, replacement }) => { const originalContent = content; content = content.replace(pattern, replacement); if (content !== originalContent) { modified = true; } }); // Sauvegarder si modifié if (modified) { fs.writeFileSync(filepath, content, 'utf8'); console.log(`✅ Migré: ${filepath}`); return true; } else { console.log(`⏸️ Pas de changement: ${filepath}`); return false; } } // Script principal function main() { console.log('🚀 Démarrage migration console vers logSh...'); const projectRoot = __dirname; const jsFiles = walkSync(projectRoot); console.log(`📁 Trouvé ${jsFiles.length} fichiers JavaScript`); let migratedCount = 0; jsFiles.forEach(filepath => { if (migrateFile(filepath)) { migratedCount++; } }); console.log(`\n🎉 Migration terminée!`); console.log(`📊 ${migratedCount} fichiers modifiés sur ${jsFiles.length}`); console.log(`\n🔍 Pour vérifier, lance:`); console.log(`grep -r "console\\." --include="*.js" . || echo "✅ Plus de console dans le code!"`); } // Lancer le script if (require.main === module) { main(); } module.exports = { migrateFile, walkSync };