blob: 26d8f3bed0b780417749cf3c5b5c2018d77c01a4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
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
|