diff options
| author | ertopogo <erwin.t.pombett@gmail.com> | 2025-11-20 00:06:48 +0100 |
|---|---|---|
| committer | ertopogo <erwin.t.pombett@gmail.com> | 2025-11-20 00:06:48 +0100 |
| commit | 568668994b51fc92c2fbc5c2fcf0ff1ef24aa791 (patch) | |
| tree | 76562ae8379f8db75bc06821367436d563e723e8 /PROJECT.md | |
Initial commit: Structure du projet de synchronisation de fichiers de configuration
Diffstat (limited to 'PROJECT.md')
| -rw-r--r-- | PROJECT.md | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/PROJECT.md b/PROJECT.md new file mode 100644 index 0000000..26d8f3b --- /dev/null +++ b/PROJECT.md @@ -0,0 +1,111 @@ +# Projet : Synchronisation de fichiers de configuration + +## Objectif + +Ce projet permet de centraliser et synchroniser tous les fichiers de configuration (vim, bash, screen, cursor, documentation, etc.) depuis Windows et WSL vers un dépôt git sur chillka. + +## Structure du projet + +``` +config-files-keyvault/ +├── .git/ # Dépôt git local +├── configs/ +│ ├── windows/ # Fichiers provenant de Windows +│ └── wsl/ # Fichiers provenant de WSL +├── scripts/ +│ ├── sync-to-project.ps1 # Script pour copier fichiers vers le projet +│ └── sync-from-project.ps1 # Script pour restaurer fichiers depuis le projet +├── files-config.txt # Liste des fichiers à synchroniser +├── path-mapping.json # Mapping chemins originaux <-> chemins dans le projet +└── PROJECT.md # Documentation du projet +``` + +## Utilisation + +### 1. Ajouter des fichiers à synchroniser + +Éditer le fichier `files-config.txt` et ajouter les fichiers au format : +``` +windows|%USERPROFILE%\.vimrc +wsl|~/.bashrc +``` + +### 2. Copier les fichiers vers le projet + +Exécuter le script PowerShell : +```powershell +.\scripts\sync-to-project.ps1 +``` + +Ce script va : +- Lire `files-config.txt` +- Copier chaque fichier vers `configs/{system}/` +- Créer/mettre à jour `path-mapping.json` avec les chemins originaux + +### 3. Restaurer les fichiers depuis le projet + +Exécuter le script PowerShell : +```powershell +.\scripts\sync-from-project.ps1 +``` + +Ce script va : +- Lire `path-mapping.json` +- Copier chaque fichier depuis `configs/{system}/` vers son emplacement original +- Créer les répertoires parents si nécessaire + +### 4. Synchronisation Git + +Le dépôt git est configuré avec le remote : +``` +toshiro@chillka:/var/data/git/repositories/config-files-keyvault.git +``` + +Pour synchroniser : +```powershell +git add . +git commit -m "Mise à jour des fichiers de configuration" +git push origin main +``` + +## Format de fichiers-config.txt + +Chaque ligne doit suivre le format : +``` +{système}|{chemin} +``` + +Où : +- `{système}` : `windows` ou `wsl` +- `{chemin}` : Chemin du fichier avec support des variables d'environnement Windows (`%VAR%`) ou expansion WSL (`~`) + +Exemples : +``` +windows|%USERPROFILE%\.vimrc +windows|%APPDATA%\Code\User\settings.json +wsl|~/.bashrc +wsl|~/.bash_aliases +wsl|~/.screenrc +``` + +## Format de path-mapping.json + +Ce fichier est généré automatiquement par le script `sync-to-project.ps1`. Il contient le mapping entre les chemins originaux et les chemins dans le projet : + +```json +{ + "windows": { + "%USERPROFILE%\\.vimrc": "configs/windows/.vimrc" + }, + "wsl": { + "~/.bashrc": "configs/wsl/.bashrc" + } +} +``` + +## Notes + +- Les fichiers sont organisés par système d'origine (windows/wsl) pour faciliter la gestion +- Le mapping des chemins permet de restaurer les fichiers à leur emplacement exact +- Les répertoires parents sont créés automatiquement lors de la restauration + |
