summaryrefslogtreecommitdiff
path: root/PROJECT.md
diff options
context:
space:
mode:
authorertopogo <erwin.t.pombett@gmail.com>2025-11-20 00:06:48 +0100
committerertopogo <erwin.t.pombett@gmail.com>2025-11-20 00:06:48 +0100
commit568668994b51fc92c2fbc5c2fcf0ff1ef24aa791 (patch)
tree76562ae8379f8db75bc06821367436d563e723e8 /PROJECT.md
Initial commit: Structure du projet de synchronisation de fichiers de configuration
Diffstat (limited to 'PROJECT.md')
-rw-r--r--PROJECT.md111
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
+