#!/usr/bin/env node /** * Script pour basculer entre mode développement et production */ const fs = require('fs'); const path = require('path'); const ENV_FILE = path.join(__dirname, '../lib/config/env.dart'); const ENV_DEV_FILE = path.join(__dirname, '../lib/config/env.dev.dart'); const PROD_CONFIG = `class Env { static const bool isDevelopment = false; // Configuration de l'auto-login en développement static const String devAdminEmail = ''; static const String devAdminPassword = ''; // URLs et endpoints static const String baseUrl = 'https://em2rp-951dc.firebaseapp.com'; // Configuration Firebase static const String firebaseProjectId = 'em2rp-951dc'; // Autres configurations static const int apiTimeout = 30000; // 30 secondes } `; function setProductionMode() { try { // Sauvegarder la config actuelle dans env.dev.dart si elle n'existe pas if (!fs.existsSync(ENV_DEV_FILE) && fs.existsSync(ENV_FILE)) { const currentContent = fs.readFileSync(ENV_FILE, 'utf8'); if (currentContent.includes('isDevelopment = true')) { fs.writeFileSync(ENV_DEV_FILE, currentContent, 'utf8'); console.log('✅ Configuration de développement sauvegardée dans env.dev.dart'); } } // Écrire la configuration de production fs.writeFileSync(ENV_FILE, PROD_CONFIG, 'utf8'); console.log('✅ Mode PRODUCTION activé (isDevelopment = false, credentials masqués)'); return true; } catch (error) { console.error('❌ Erreur lors du basculement en mode production:', error.message); return false; } } function setDevelopmentMode() { try { if (!fs.existsSync(ENV_DEV_FILE)) { console.error('❌ Fichier env.dev.dart introuvable. Créez-le d\'abord avec vos credentials.'); return false; } const devContent = fs.readFileSync(ENV_DEV_FILE, 'utf8'); fs.writeFileSync(ENV_FILE, devContent, 'utf8'); console.log('✅ Mode DÉVELOPPEMENT activé (isDevelopment = true)'); return true; } catch (error) { console.error('❌ Erreur lors du basculement en mode développement:', error.message); return false; } } // Exécuter si appelé directement if (require.main === module) { const args = process.argv.slice(2); const mode = args[0]; if (mode === 'prod' || mode === 'production') { process.exit(setProductionMode() ? 0 : 1); } else if (mode === 'dev' || mode === 'development') { process.exit(setDevelopmentMode() ? 0 : 1); } else { console.log('Usage: node toggle_env.js [prod|dev]'); console.log(' prod : Bascule en mode production (isDevelopment = false, sans credentials)'); console.log(' dev : Bascule en mode développement (isDevelopment = true, avec credentials)'); process.exit(1); } } module.exports = { setProductionMode, setDevelopmentMode };