# Documentation : dev-init-create-archive.sh

## 🔍 Objectif du script
Le script `dev-init-create-archive.sh` permet de générer une archive d'initialisation (`dev-init-archive.zip`) contenant :

- Un **dump SQL** d'une ou plusieurs bases de données extraites du conteneur Docker `db`
- Le fichier **`.env`** actuel du projet

Cette archive est ensuite utilisée par le script `dev-init-run.sh` pour initialiser un environnement local de développement.

## 📅 Utilité
Ce script est à destination du **lead technique** ou d'un développeur habilité à générer une archive propre à partager aux nouveaux membres de l'équipe ou pour recréer un environnement local rapidement.

Il garantit que :
- Le dump est cohérent avec les données du projet
- Le `.env` est correctement configuré
- Le tout est empaqueté dans un zip utilisable directement par `dev-init-run.sh`

## ⚖️ Utilisation

Depuis la racine du projet, lancer :

```bash
./dev-init-create-archive.sh
```

Par défaut, cela exportera 4 bases de données :
- `licence_156`
- `streamup_bd_test`
- `streamup_bd_modele`
- `media_manager`

### ✅ Option disponible

Pour exporter **l'ensemble des bases MySQL** :

```bash
./dev-init-create-archive.sh --all-databases
```

## 🔐 Prérequis
- Docker doit être lancé
- Le conteneur de base de données doit être nommé `db`
- Le fichier `.env` doit exister à la racine du projet et contenir les variables `MYSQL_HOST`, `MYSQL_USER`, `MYSQL_PWD`

## 📁 Contenu de l'archive générée
L'archive `dev-init-archive.zip` contiendra :

```
dev-init-archive/
├── dump.sql
└── .env
```

## ✉️ Bonnes pratiques
- Toujours vérifier le contenu du `.env` avant de lancer le script
- Utiliser ce script uniquement depuis un environnement local maîtrisé
- Ne jamais committer le zip dans le repo Git

---

Fichier à utiliser conjointement avec : `dev-init-run.sh`


## ⚙️ Ce que fait le script automatiquement

---

À l'exécution, le script :

- Supprime tout ancien dossier temporaire d’archive
- Extrait les variables MySQL depuis le fichier `.env` du projet
- Fait un export SQL :
  - soit des 4 bases principales (`licence_156`, `streamup_bd_test`, `streamup_bd_modele`, `media_manager`)
  - soit de toutes les bases si `--all-databases` est passé en argument
- Copie le fichier `.env` du projet dans le dossier d’archive
- Anonymise certaines variables sensibles dont la valeur est connue (ex : `XXXX` → `XXXXX`)
  - Le remplacement est effectué même si la ligne est commentée
- Crée une archive `dev-init-archive.zip` avec les fichiers nécessaires
- Supprime le dossier temporaire une fois l’archive générée
