Skip to content

Commit 4b38b7c

Browse files
committed
modification du nom de repo
1 parent 6681327 commit 4b38b7c

8 files changed

Lines changed: 276 additions & 15 deletions

File tree

.env.example

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,13 @@
88
# SYNC_DIR="$HOME/Dropbox/dotfiles"
99
SYNC_DIR=""
1010

11+
# Chemin vers votre fichier packages.conf personnalisé synchronisé (optionnel)
12+
# Si défini, ce fichier sera utilisé au lieu de src/packages.conf.example
13+
# Exemples:
14+
# PACKAGES_CONF_DIR="$HOME/OneDrive/ok_computer"
15+
# PACKAGES_CONF_DIR="$HOME/SynologyDrive/ok_computer"
16+
PACKAGES_CONF_DIR=""
17+
1118
# Chemin vers le vault Obsidian synchronisé (optionnel)
1219
# Exemples:
1320
# OBSIDIAN_VAULT="$HOME/OneDrive/Obsidian"

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Configuration locale
22
.env.local
3+
src/packages.conf
34

45
# Build artifacts
56
/dist/

README.md

Lines changed: 66 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# init_computer
1+
# ok_computer
22

33
Simple repo pour ré-installer plus vite un ordinateur neuf (macOS, Windows, Linux).
44

@@ -9,12 +9,12 @@ Simple repo pour ré-installer plus vite un ordinateur neuf (macOS, Windows, Lin
99
Télécharger la dernière release :
1010
```bash
1111
curl -fsSL -o init-computer.tar.gz \
12-
https://github.com/axgd-code/init_computer/releases/download/$(curl -s https://api.github.com/repos/axgd-code/init_computer/releases/latest | grep tag_name | cut -d'"' -f4)/init-mac-scripts.tar.gz
12+
https://github.com/axgd-code/ok_computer/releases/download/$(curl -s https://api.github.com/repos/axgd-code/ok_computer/releases/latest | grep tag_name | cut -d'"' -f4)/init-mac-scripts.tar.gz
1313
tar -xzf init-computer.tar.gz
1414
bash init.sh
1515
```
1616

17-
Ou télécharger manuellement depuis [releases](https://github.com/axgd-code/init_computer/releases), puis :
17+
Ou télécharger manuellement depuis [releases](https://github.com/axgd-code/ok_computer/releases), puis :
1818
```bash
1919
tar -xzf init-mac-scripts.tar.gz
2020
bash init.sh
@@ -24,8 +24,8 @@ bash init.sh
2424

2525
Cloner et exécuter depuis les sources :
2626
```bash
27-
git clone https://github.com/axgd-code/init_computer.git
28-
cd init_computer
27+
git clone https://github.com/axgd-code/ok_computer.git
28+
cd ok_computer
2929
bash src/init.sh
3030
```
3131

@@ -148,9 +148,43 @@ Les logs de mise à jour sont sauvegardés dans :
148148

149149
## Ajouter ou modifier des packages
150150

151+
### Configuration personnalisée (recommandé)
152+
153+
Pour avoir votre propre liste de packages synchronisée entre vos machines :
154+
155+
1. Créer le fichier `.env.local` depuis l'exemple :
156+
```bash
157+
cp .env.example .env.local
158+
```
159+
160+
2. Éditer `.env.local` et définir le chemin de synchronisation :
161+
```bash
162+
PACKAGES_CONF_DIR="$HOME/OneDrive/ok_computer"
163+
# ou
164+
PACKAGES_CONF_DIR="$HOME/SynologyDrive/ok_computer"
165+
```
166+
167+
3. Synchroniser votre fichier packages.conf personnalisé :
168+
```bash
169+
# Copier la liste actuelle vers le dossier synchronisé
170+
bash src/dotfiles.sh packages sync
171+
172+
# Ou restaurer depuis le dossier synchronisé
173+
bash src/dotfiles.sh packages restore
174+
175+
# Voir le statut
176+
bash src/dotfiles.sh packages status
177+
```
178+
179+
**Avantages** :
180+
- ✅ Votre liste de packages est synchronisée automatiquement via OneDrive/Synology
181+
- ✅ Même configuration sur tous vos ordinateurs
182+
- ✅ Le fichier `packages.conf` local est ignoré par Git (personnel)
183+
- ✅ Le repository contient seulement `packages.conf.example` comme référence
184+
151185
### Méthode 1 : Édition manuelle
152186

153-
Éditez le fichier [src/packages.conf](src/packages.conf) en respectant le format :
187+
Éditez votre fichier packages.conf (synchronisé ou local dans `src/packages.conf`) en respectant le format :
154188
```
155189
TYPE|NOM_MAC|NOM_WINDOWS|DESCRIPTION
156190
```
@@ -163,7 +197,7 @@ Exemples :
163197

164198
### Méthode 2 : Utiliser le gestionnaire d'applications ([src/app.sh](src/app.sh))
165199

166-
Installer une application et l'ajouter automatiquement à [src/packages.conf](src/packages.conf) :
200+
Installer une application et l'ajouter automatiquement à packages.conf :
167201
```bash
168202
bash src/app.sh install firefox
169203
bash src/app.sh install vlc
@@ -174,20 +208,20 @@ Le processus `install` effectue automatiquement :
174208
1. ✓ Vérification de la disponibilité via les API (Homebrew, Chocolatey)
175209
2. ✓ Installation sur la plateforme actuelle
176210
3. ✓ Détection automatique de la disponibilité sur les autres plateformes
177-
4. ✓ Remplissage complet de [src/packages.conf](src/packages.conf) avec les infos correctes
211+
4. ✓ Remplissage complet de packages.conf avec les infos correctes
178212

179-
Désinstaller une application et la supprimer de [src/packages.conf](src/packages.conf) :
213+
Désinstaller une application et la supprimer de packages.conf :
180214
```bash
181215
bash src/app.sh uninstall firefox
182216
bash src/app.sh uninstall vlc
183217
```
184218

185-
Ajouter une application à [src/packages.conf](src/packages.conf) sans l'installer :
219+
Ajouter une application à packages.conf sans l'installer :
186220
```bash
187221
bash src/app.sh add firefox
188222
```
189223

190-
Supprimer une application de [src/packages.conf](src/packages.conf) sans la désinstaller :
224+
Supprimer une application de packages.conf sans la désinstaller :
191225
```bash
192226
bash src/app.sh remove firefox
193227
```
@@ -224,6 +258,9 @@ cp .env.example .env.local
224258
# Dotfiles
225259
SYNC_DIR="$HOME/OneDrive/dotfiles"
226260

261+
# Packages personnalisés
262+
PACKAGES_CONF_DIR="$HOME/OneDrive/ok_computer"
263+
227264
# Obsidian (optionnel)
228265
OBSIDIAN_VAULT="$HOME/OneDrive/Obsidian"
229266

@@ -263,6 +300,23 @@ Lister les dotfiles suivis :
263300
bash src/dotfiles.sh list
264301
```
265302

303+
### Gestion de packages.conf
304+
305+
Synchroniser votre liste de packages personnalisée :
306+
```bash
307+
bash src/dotfiles.sh packages sync
308+
```
309+
310+
Restaurer votre liste de packages :
311+
```bash
312+
bash src/dotfiles.sh packages restore
313+
```
314+
315+
Voir le statut :
316+
```bash
317+
bash src/dotfiles.sh packages status
318+
```
319+
266320
### Gestion d'Obsidian
267321

268322
Synchroniser votre vault Obsidian :
@@ -300,6 +354,7 @@ bash src/dotfiles.sh vscode status
300354
### Dotfiles suivis
301355

302356
Les fichiers suivants sont synchronisés :
357+
- `packages.conf` (liste personnalisée des applications)
303358
- `.bashrc`, `.zshrc` (configurations shell)
304359
- `.gitconfig`, `.git-credentials` (configuration Git)
305360
- `.vimrc`, `.config/nvim` (configuration éditeurs)

src/app.sh

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,21 @@ NC='\033[0m' # No Color
1111

1212
# Obtenir le répertoire du script
1313
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
14-
PACKAGES_CONF="${SCRIPT_DIR}/packages.conf"
14+
15+
# Charger .env.local si disponible
16+
if [ -f "${SCRIPT_DIR}/../.env.local" ]; then
17+
# shellcheck disable=SC1091
18+
source "${SCRIPT_DIR}/../.env.local"
19+
fi
20+
21+
# Déterminer le chemin du fichier packages.conf
22+
if [ -n "${PACKAGES_CONF_DIR:-}" ] && [ -f "${PACKAGES_CONF_DIR}/packages.conf" ]; then
23+
PACKAGES_CONF="${PACKAGES_CONF_DIR}/packages.conf"
24+
elif [ -f "${SCRIPT_DIR}/packages.conf" ]; then
25+
PACKAGES_CONF="${SCRIPT_DIR}/packages.conf"
26+
else
27+
PACKAGES_CONF="${SCRIPT_DIR}/packages.conf.example"
28+
fi
1529

1630
# Détection du système d'exploitation
1731
OS="$(uname -s)"

src/dotfiles.sh

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,20 @@ ${BLUE}Commands:${NC}
4242
${GREEN}status${NC} Show dotfiles status
4343
${GREEN}list${NC} List tracked dotfiles
4444
${GREEN}config${NC} Show current configuration
45+
${GREEN}packages${NC} Manage packages.conf synchronization
4546
${GREEN}obsidian${NC} Manage Obsidian vault synchronization
4647
${GREEN}vscode${NC} Manage VS Code settings synchronization
4748
${GREEN}--help${NC} Show this help
4849
4950
${BLUE}Configuration:${NC}
50-
Edit ${ENV_FILE} to set SYNC_DIR, OBSIDIAN_VAULT, VSCODE_CONFIG
51+
Edit ${ENV_FILE} to set SYNC_DIR, PACKAGES_CONF_DIR, OBSIDIAN_VAULT, VSCODE_CONFIG
5152
5253
${BLUE}Dotfiles tracked:${NC}
5354
- .bashrc / .zshrc
5455
- .gitconfig
5556
- .ssh/config
5657
- .vimrc / .config/nvim
58+
- packages.conf
5759
- Obsidian vault
5860
- VS Code settings
5961
EOF
@@ -437,6 +439,73 @@ manage_vscode() {
437439
esac
438440
}
439441

442+
# Gérer packages.conf
443+
manage_packages() {
444+
local cmd="${1:-status}"
445+
446+
if [ -z "${PACKAGES_CONF_DIR}" ]; then
447+
echo -e "${YELLOW}⚠ PACKAGES_CONF_DIR n'est pas défini dans ${ENV_FILE}${NC}"
448+
echo -e "${BLUE}Exemple: PACKAGES_CONF_DIR=\"\$HOME/OneDrive/ok_computer\"${NC}"
449+
return 1
450+
fi
451+
452+
if [ ! -d "${PACKAGES_CONF_DIR}" ]; then
453+
echo -e "${YELLOW}⚠ Dossier n'existe pas: ${PACKAGES_CONF_DIR}${NC}"
454+
echo -e "${BLUE}Création du dossier...${NC}"
455+
mkdir -p "${PACKAGES_CONF_DIR}"
456+
fi
457+
458+
local SOURCE_CONF="${SCRIPT_DIR}/packages.conf"
459+
local EXAMPLE_CONF="${SCRIPT_DIR}/packages.conf.example"
460+
local REMOTE_CONF="${PACKAGES_CONF_DIR}/packages.conf"
461+
462+
case "${cmd}" in
463+
sync)
464+
echo -e "${BLUE}Synchronisation de packages.conf vers ${PACKAGES_CONF_DIR}...${NC}"
465+
if [ -f "${SOURCE_CONF}" ]; then
466+
cp "${SOURCE_CONF}" "${REMOTE_CONF}"
467+
echo -e "${GREEN}✓ packages.conf synchronisé${NC}"
468+
elif [ -f "${EXAMPLE_CONF}" ]; then
469+
cp "${EXAMPLE_CONF}" "${REMOTE_CONF}"
470+
echo -e "${GREEN}✓ packages.conf.example copié comme base${NC}"
471+
else
472+
echo -e "${RED}✗ Aucun fichier packages.conf trouvé${NC}"
473+
return 1
474+
fi
475+
;;
476+
restore)
477+
echo -e "${BLUE}Restauration de packages.conf depuis ${PACKAGES_CONF_DIR}...${NC}"
478+
if [ -f "${REMOTE_CONF}" ]; then
479+
cp "${REMOTE_CONF}" "${SOURCE_CONF}"
480+
echo -e "${GREEN}✓ packages.conf restauré${NC}"
481+
else
482+
echo -e "${YELLOW}⚠ Aucun packages.conf distant trouvé${NC}"
483+
if [ -f "${EXAMPLE_CONF}" ]; then
484+
echo -e "${BLUE}Copie de l'exemple...${NC}"
485+
cp "${EXAMPLE_CONF}" "${SOURCE_CONF}"
486+
echo -e "${GREEN}✓ packages.conf créé depuis l'exemple${NC}"
487+
fi
488+
fi
489+
;;
490+
status)
491+
echo -e "${BLUE}Statut packages.conf:${NC}"
492+
echo -e " Dossier synchronisé: ${GREEN}${PACKAGES_CONF_DIR}${NC}"
493+
if [ -f "${REMOTE_CONF}" ]; then
494+
local line_count=$(wc -l < "${REMOTE_CONF}" 2>/dev/null | tr -d ' ')
495+
echo -e " Fichier distant: ${GREEN}${REMOTE_CONF}${NC} (${line_count} lignes)"
496+
else
497+
echo -e " Fichier distant: ${YELLOW}non trouvé${NC}"
498+
fi
499+
if [ -f "${SOURCE_CONF}" ]; then
500+
local line_count=$(wc -l < "${SOURCE_CONF}" 2>/dev/null | tr -d ' ')
501+
echo -e " Fichier local: ${GREEN}${SOURCE_CONF}${NC} (${line_count} lignes)"
502+
else
503+
echo -e " Fichier local: ${YELLOW}utilise packages.conf.example${NC}"
504+
fi
505+
;;
506+
esac
507+
}
508+
440509
case "$1" in
441510
init)
442511
init_sync
@@ -473,6 +542,9 @@ case "$1" in
473542
vscode)
474543
manage_vscode "${2:-status}"
475544
;;
545+
packages)
546+
manage_packages "${2:-status}"
547+
;;
476548
*)
477549
echo -e "${RED}✗ Commande inconnue: $1${NC}"
478550
show_help

src/init.sh

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,26 @@
11
#!/bin/bash
22

33
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
4-
PACKAGES_CONF="${SCRIPT_DIR}/packages.conf"
4+
5+
# Charger .env.local si disponible
6+
if [ -f "${SCRIPT_DIR}/../.env.local" ]; then
7+
# shellcheck disable=SC1091
8+
source "${SCRIPT_DIR}/../.env.local"
9+
fi
10+
11+
# Déterminer le chemin du fichier packages.conf
12+
# Priorité : PACKAGES_CONF_DIR > local > example
13+
if [ -n "${PACKAGES_CONF_DIR:-}" ] && [ -f "${PACKAGES_CONF_DIR}/packages.conf" ]; then
14+
PACKAGES_CONF="${PACKAGES_CONF_DIR}/packages.conf"
15+
echo "Utilisation de packages.conf synchronisé: ${PACKAGES_CONF}"
16+
elif [ -f "${SCRIPT_DIR}/packages.conf" ]; then
17+
PACKAGES_CONF="${SCRIPT_DIR}/packages.conf"
18+
else
19+
PACKAGES_CONF="${SCRIPT_DIR}/packages.conf.example"
20+
echo "Utilisation de packages.conf.example (créez .env.local pour personnaliser)"
21+
fi
22+
23+
export PACKAGES_CONF
524

625
run_wifi_import() {
726
if [ -z "${WIFI_KDBX_DB:-}" ]; then

src/init_conf_windows.sh

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,21 @@
11
#!/bin/bash
22

33
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
4-
PACKAGES_CONF="${SCRIPT_DIR}/packages.conf"
4+
5+
# Charger .env.local si disponible
6+
if [ -f "${SCRIPT_DIR}/../.env.local" ]; then
7+
# shellcheck disable=SC1091
8+
source "${SCRIPT_DIR}/../.env.local"
9+
fi
10+
11+
# Déterminer le chemin du fichier packages.conf
12+
if [ -n "${PACKAGES_CONF_DIR:-}" ] && [ -f "${PACKAGES_CONF_DIR}/packages.conf" ]; then
13+
PACKAGES_CONF="${PACKAGES_CONF_DIR}/packages.conf"
14+
elif [ -f "${SCRIPT_DIR}/packages.conf" ]; then
15+
PACKAGES_CONF="${SCRIPT_DIR}/packages.conf"
16+
else
17+
PACKAGES_CONF="${SCRIPT_DIR}/packages.conf.example"
18+
fi
519

620
echo "Configuration de Windows..."
721

0 commit comments

Comments
 (0)