Compare commits

..
7 Commits
15 changed files with 126 additions and 436 deletions

No files matched your search

+1 -13
View File
@@ -10,8 +10,6 @@ hosts:
xavier: xavier:
toolboxes: toolboxes:
- terminal - terminal
- dev-git
- dev-gitea
- dev-tools - dev-tools
- dev-languages - dev-languages
- ai - ai
@@ -30,11 +28,8 @@ hosts:
ubuntu: ubuntu:
toolboxes: toolboxes:
- terminal - terminal
- dev-git
- dev-gitea
- dev-tools - dev-tools
- dev-languages - dev-languages
- devops
- ai - ai
tools: tools:
- pipx:vit - pipx:vit
@@ -45,13 +40,10 @@ hosts:
root: root:
toolboxes: toolboxes:
- terminal - terminal
- dev-git
- dev-tools - dev-tools
xavier: xavier:
toolboxes: toolboxes:
- terminal - terminal
- dev-git
- dev-gitea
- dev-tools - dev-tools
- dev-languages - dev-languages
- devops - devops
@@ -59,6 +51,7 @@ hosts:
tools: tools:
- sops - sops
- age - age
- cargo:rage
configs: {} configs: {}
# Termux (application de terminal pour android) # Termux (application de terminal pour android)
termux-debian: termux-debian:
@@ -68,14 +61,10 @@ hosts:
root: root:
toolboxes: toolboxes:
- terminal - terminal
- dev-git
- dev-tools - dev-tools
xavier: xavier:
toolboxes: toolboxes:
- terminal - terminal
- dev-git
- dev-github
- dev-gitea
- dev-tools - dev-tools
termux-ubuntu: termux-ubuntu:
packages: packages:
@@ -88,5 +77,4 @@ hosts:
xavier: xavier:
toolboxes: toolboxes:
- terminal - terminal
- dev-git
- dev-tools - dev-tools
+2 -9
View File
@@ -21,17 +21,12 @@ tools:
- jq - jq
- yq - yq
- shellcheck - shellcheck
- delta
dev-git:
- lazygit - lazygit
dev-github: - delta
- gh - gh
dev-gitlab:
- glab
dev-gitea:
- tea: - tea:
url: "https://gitea.com/gitea/tea/releases/download/v{{ version }}/tea-{{ version }}-{{ os() }}-{{ arch(x64='amd64') }}.xz" url: "https://gitea.com/gitea/tea/releases/download/v{{ version }}/tea-{{ version }}-{{ os() }}-{{ arch(x64='amd64') }}.xz"
version: "0.15.1" version: "0.14.2"
dev-languages: dev-languages:
- python - python
- uv - uv
@@ -59,8 +54,6 @@ tools:
- claude - claude
- gemini-cli - gemini-cli
- codex - codex
- copilot
- opencode
# # Password managers # # Password managers
# # vault = "latest" # # vault = "latest"
-6
View File
@@ -4,12 +4,6 @@
".config/bash": ".config/bash":
type: git-repo type: git-repo
url: https://gitea.cloud.logerais.com/xavier/config-bash.git url: https://gitea.cloud.logerais.com/xavier/config-bash.git
clone:
args:
- --recurse-submodules
pull:
args:
- --recurse-submodules
refreshPeriod: 24h # Vérifie toutes les 24h refreshPeriod: 24h # Vérifie toutes les 24h
##### [ VIM ] ##### ##### [ VIM ] #####
-17
View File
@@ -1,17 +0,0 @@
{{/* .chezmoitemplates/mise-toolbox-conf */}}
{{/* Expects data: (merge (dict "toolboxName" "<name>") .) */}}
{{- $toolboxName := .toolboxName -}}
{{ includeTemplate "chezmoi-managed-header" . }}
# Toolbox: {{ $toolboxName }}
[tools]
{{- $toolsList := index .tools.toolboxes $toolboxName }}
{{- range $tool := $toolsList }}
{{- if kindIs "map" $tool }}
{{- range $toolName, $params := $tool }}
{{ $toolName }} = { version = "{{ $params.version | default "latest" }}"{{ range $key, $value := omit $params "version" }}, {{ $key }} = "{{ $value }}"{{ end }} }
{{- end }}
{{- else }}
"{{ $tool }}" = "latest"
{{- end }}
{{- end }}
+24 -6
View File
@@ -10,12 +10,14 @@
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- if $currentUser }} {{- if $currentUser }}
{{- /* Les outils individuels (la liste 'tools:' de l'utilisateur) */}} {{- /* 1. Parcourir les toolboxes associées à cet hôte */}}
{{- if hasKey $currentUser "tools" }} {{- range $toolboxName := $currentUser.toolboxes }}
{{- if $currentUser.tools }} {{- /* Récupérer la liste des outils pour cette toolbox dans tools.yaml */}}
{{- $toolsList := index $.tools.toolboxes $toolboxName }}
{{- if $toolsList }}
# Outils individuels # Toolbox: {{ $toolboxName }}
{{- range $tool := $currentUser.tools }} {{- range $tool := $toolsList }}
{{- /* Un outil est soit une chaîne ("nom"), soit un objet { nom: {version, ...params mise} } */}} {{- /* Un outil est soit une chaîne ("nom"), soit un objet { nom: {version, ...params mise} } */}}
{{- if kindIs "map" $tool }} {{- if kindIs "map" $tool }}
{{- range $toolName, $params := $tool }} {{- range $toolName, $params := $tool }}
@@ -27,7 +29,23 @@
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- end }} {{- end }}
{{- /* Les toolboxes de cet utilisateur sont générées séparément dans ~/.config/mise/conf.d/<toolbox>.toml */}}
{{- /* 2. Parcourir les outils individuels (la liste 'tools:' de l'utilisateur) */}}
{{- if hasKey $currentUser "tools" }}
{{- if $currentUser.tools }}
# Outils individuels
{{- range $tool := $currentUser.tools }}
{{- if kindIs "map" $tool }}
{{- range $toolName, $params := $tool }}
{{ $toolName }} = { version = "{{ $params.version | default "latest" }}"{{ range $key, $value := omit $params "version" }}, {{ $key }} = "{{ $value }}"{{ end }} }
{{- end }}
{{- else }}
"{{ $tool }}" = "latest"
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- else if $currentHost }} {{- else if $currentHost }}
# Aucun profil trouvé dans hosts.yaml pour l'utilisateur {{ $username }} sur la machine : {{ $hostname }} # Aucun profil trouvé dans hosts.yaml pour l'utilisateur {{ $username }} sur la machine : {{ $hostname }}
{{- else }} {{- else }}
-13
View File
@@ -46,19 +46,6 @@ shell-integration-features = sudo
gtk-titlebar-hide-when-maximized = true gtk-titlebar-hide-when-maximized = true
maximize maximize
# Ouvre les nouvelles fenêtres avec un répertoire de travail dans $HOME
window-inherit-working-directory = false
# Ouvre les nouveaux onglets avec un répertoire de travail dans $HOME
tab-inherit-working-directory = false
# mais les nouveaux splits dans le répertoire courant
split-inherit-working-directory = true
# Permet d'ouvrir un nouvel onglet en conservant le répertoire de travail courant
# keybind = shift+alt+t=new_tab:current
keybind = ctrl+b>n=new_window
keybind = ctrl+b>t=new_tab
keybind = ctrl+b>z=toggle_split_zoom
keybind = ctrl+b>`=toggle_quick_terminal
# Systemd and D-Bus Integration # Systemd and D-Bus Integration
quit-after-last-window-closed = true quit-after-last-window-closed = true
quit-after-last-window-closed-delay = 5m quit-after-last-window-closed-delay = 5m
+47
View File
@@ -0,0 +1,47 @@
[core]
excludesfile = ~/.config/git/ignore
attributesfile = ~/.config/git/attributes
pager = delta
[user]
name = Xavier Logerais
email = xavier@logerais.com
[credential]
helper = cache
[credential "https://gitea.logerais.com"]
helper = cache
helper = !tea login helper
[credential "https://gitea.cloud.logerais.com"]
helper = cache
helper = !tea login helper
[init]
defaultBranch = main
[rerere]
enabled = 1
[merge]
conflictstyle = diff3
[page]
diff = delta
show = delta
log = delta
blame = delta
reflog = delta
[delta]
navigate = true
side-by-side = true
dark = true
syntax-theme = Coldark-Dark
[interactive]
diffFilter = delta --color-only
[alias]
tree = !git ls-files | tree --fromfile -C
-70
View File
@@ -1,70 +0,0 @@
{{- $hostname := output "hostname" | trim -}}
{{- $username := .chezmoi.username -}}
{{- $currentHost := index .hosts $hostname -}}
{{- $currentUser := "" -}}
{{- if $currentHost -}}
{{- if hasKey $currentHost.users $username -}}
{{- $currentUser = index $currentHost.users $username -}}
{{- end -}}
{{- end -}}
{{- $gitConfig := dict -}}
{{- if and $currentUser (hasKey $currentUser "configs") -}}
{{- if hasKey $currentUser.configs "git" -}}
{{- $gitConfig = $currentUser.configs.git -}}
{{- end -}}
{{- end -}}
{{- $gitName := "Xavier Logerais" -}}
{{- $gitEmail := "xavier@logerais.com" -}}
{{- if hasKey $gitConfig "name" -}}
{{- $gitName = $gitConfig.name -}}
{{- end -}}
{{- if hasKey $gitConfig "email" -}}
{{- $gitEmail = $gitConfig.email -}}
{{- end -}}
[core]
excludesfile = ~/.config/git/ignore
attributesfile = ~/.config/git/attributes
pager = delta
[user]
name = {{ $gitName }}
email = {{ $gitEmail }}
[credential]
helper = cache
[credential "https://gitea.logerais.com"]
helper = cache
helper = !tea login helper
[credential "https://gitea.cloud.logerais.com"]
helper = cache
helper = !tea login helper
[init]
defaultBranch = main
[rerere]
enabled = 1
[merge]
conflictstyle = diff3
[page]
diff = delta
show = delta
log = delta
blame = delta
reflog = delta
[delta]
navigate = true
side-by-side = true
dark = true
syntax-theme = Coldark-Dark
[interactive]
diffFilter = delta --color-only
[alias]
tree = !git ls-files | tree --fromfile -C
+2 -2
View File
@@ -11,7 +11,7 @@ gui:
- bold - bold
nerdFontsVersion: "3" nerdFontsVersion: "3"
git: git:
diffRenderers: pagers:
- colorArg: always - colorArg: always
command: delta --paging=never pager: delta --paging=never
parseEmoji: true parseEmoji: true
+4 -5
View File
@@ -1,4 +1,4 @@
{{ includeTemplate "chezmoi-managed-header" . }} {{ template "chezmoi-managed-header" . }}
[settings] [settings]
experimental = true experimental = true
@@ -9,7 +9,7 @@ binstall = true
######################### [ Bootstrap ] ######################### ######################### [ Bootstrap ] #########################
[bootstrap.packages] [bootstrap.packages]
{{ includeTemplate "mise-bootstrap-packages" . }} {{ template "mise-bootstrap-packages" . }}
# coreutils grep less # coreutils grep less
# tig # tig
@@ -35,9 +35,8 @@ chezmoi = "latest"
neovim = "latest" neovim = "latest"
tree-sitter = "latest" tree-sitter = "latest"
# Individual tools automated with chezmoi # Tools automated with chezmoi
# (toolboxes from .chezmoidata/tools.yaml live in ~/.config/mise/conf.d/<toolbox>.toml) {{ template "mise-tools" . }}
{{ includeTemplate "mise-tools" . }}
# Password managers # Password managers
# vault = "latest" # vault = "latest"
+33 -23
View File
@@ -1,15 +1,14 @@
"$schema" = 'https://starship.rs/config-schema.json' "$schema" = 'https://starship.rs/config-schema.json'
format = """ format = """
[ ](fg:#769ff0)\
$directory\ $directory\
[](bg:#394260 fg:#769ff0)\ [](fg:#769ff0 bg:#394260)\
$git_branch\ $git_branch\
$git_commit\ $git_commit\
$git_status\ $git_status\
$git_state\ $git_state\
$mise\
$direnv\ $direnv\
$mise\
[](fg:#394260 bg:#212736)\ [](fg:#394260 bg:#212736)\
$rust\ $rust\
$golang\ $golang\
@@ -23,7 +22,18 @@ $terraform\
""" """
right_format = """ right_format = """
[](fg:#a3aed2)$time[](fg:#a3aed2)\ [](fg:#a3aed2)\
$shell\
$username\
[](fg:#394260 bg:#a3aed2)\
$os\
[](bg:#394260 fg:#a3aed2)\
$container\
$hostname\
[ ](fg:#394260)\
[](fg:#a3aed2)\
$time\
[](fg:#a3aed2)\
""" """
[hostname] [hostname]
@@ -42,7 +52,7 @@ format = '[ $symbol $name ]($style)'
[os] [os]
disabled = false disabled = false
style = "bg:#394260 fg:#a3aed2" style = "bg:#394260 fg:#a3aed2"
format = "[ $symbol $name ]($style)" format = "[ $symbol ]($style)"
[username] [username]
show_always = true show_always = true
@@ -52,41 +62,42 @@ format = '[  $user ]($style)'
[shell] [shell]
disabled = false disabled = false
bash_indicator = ' bash' bash_indicator = ' '
zsh_indicator = ' zsh' zsh_indicator = ' '
fish_indicator = '󰈺 fish' fish_indicator = '󰈺 '
powershell_indicator = '_ Powershell' powershell_indicator = '_'
unknown_indicator = 'unknown shell' unknown_indicator = 'unknown shell'
format = '[ $indicator ]($style)'
style = "bg:#a3aed2 fg:#212736" style = "bg:#a3aed2 fg:#212736"
format = '[ $indicator[](fg:#394260 bg:#a3aed2)]($style)'
[sudo] [sudo]
disabled = false disabled = false
[directory] [directory]
disabled = false disabled = false
style = "fg:#e3e5e5 bg:#769ff0"
format = "[  $path ]($style)"
truncation_length = 5 truncation_length = 5
truncation_symbol = "…/" truncation_symbol = "…/"
truncate_to_repo = false truncate_to_repo = false
style = "fg:#e3e5e5 bg:#769ff0"
format = "[  $path ]($style)"
[git_branch] [git_branch]
disabled = false disabled = false
symbol = "" symbol = ""
style = "fg:#769ff0 bg:#394260 bold" style = "fg:#769ff0 bg:#394260"
format = '[ $symbol $branch ]($style)' format = '[ $symbol $branch ]($style)'
[git_commit] [git_commit]
disabled = false disabled = false
only_detached = true style = "fg:#769ff0 bg:#394260"
tag_disabled = false tag_disabled = false
tag_symbol = '  ' tag_symbol = '  '
style = "fg:#769ff0 bg:#394260" only_detached = true
format = '[ $hash $tag ]($style)' format = '[ $hash $tag ]($style)'
[git_status] [git_status]
disabled = false disabled = false
style = "fg:#769ff0 bg:#394260"
ahead = '⇡${count}' ahead = '⇡${count}'
behind = '⇣${count}' behind = '⇣${count}'
diverged = '[⇕⇡${ahead_count}⇣${behind_count}](fg:#FFA500 bg:#394260)' diverged = '[⇕⇡${ahead_count}⇣${behind_count}](fg:#FFA500 bg:#394260)'
@@ -98,21 +109,18 @@ renamed = '[$count󱀱 ](fg:#87CEEB bg:#394260)'
untracked = '[$count 󱀶 ](fg:#CCCCCC bg:#394260)' untracked = '[$count 󱀶 ](fg:#CCCCCC bg:#394260)'
conflicted = '[$count 󱪘 ](fg:#FF0000 bg:#394260)' conflicted = '[$count 󱪘 ](fg:#FF0000 bg:#394260)'
stashed = '[$count ](fg:#FFA500 bg:#394260)' # 󱁺  stashed = '[$count ](fg:#FFA500 bg:#394260)' # 󱁺 
style = "fg:#769ff0 bg:#394260"
format = '[$all_status$ahead_behind ]($style)' format = '[$all_status$ahead_behind ]($style)'
[git_state] [git_state]
disabled = false disabled = false
style = "fg:#769ff0 bg:#394260" style = "fg:#769ff0 bg:#394260"
format = '[ $state ($progress_current/$progress_total)]($style)' format = ' [$state( $progress_current/$progress_total)]($style) '
[direnv] [direnv]
disabled = false disabled = false
[mise] [mise]
disabled = true disabled = true
style = "bg:#212736 fg:white"
format = '[$symbol$health]($style)'
[nodejs] [nodejs]
symbol = "" symbol = ""
@@ -165,14 +173,16 @@ format = '[[](fg:#212736 bg:#1b1028) [$symbol](fg:#7b42bc bg:#1b1028) $worksp
[time] [time]
disabled = false disabled = false
time_format = '%T  󰃶 %A %e %B %Y'
style = "fg:#212736 bg:#a3aed2" style = "fg:#212736 bg:#a3aed2"
format = '[  $time ]($style)' format = '[  $time ]($style)'
time_format = '%T  󰃶 %A %e %B %Y'
# format = '[[  $time ](fg:#a0a9cb bg:#1d2230)]($style)'
[character] [character]
success_symbol = '[[](fg:#ddffdd)  [](fg:#ddffdd)](bg:#ddffdd fg:#00af5f) ' # success_symbol = '[[](fg:#ddffdd)  [](fg:#ddffdd)](bg:#ddffdd fg:#00af5f) '
error_symbol = '[[](fg:#ffddff) 󰚽 [](fg:#ffddff)](bg:#ffddff fg:#f44336) ' # error_symbol = '[[](fg:#ffddff) 󰚽 [](fg:#ffddff)](bg:#ffddff fg:#f44336) '
vimcmd_symbol = '[[](fg:#007f00)  ViM mode [](fg:#007f00)](bg:#007f00) ' success_symbol = '[  [](fg:#ddffdd)](bg:#ddffdd fg:#00af5f) '
error_symbol = '[ 󰚽 [](fg:#ffddff)](bg:#ffddff fg:#f44336) '
[os.symbols] [os.symbols]
Windows = "󰍲" Windows = "󰍲"
+8 -5
View File
@@ -25,10 +25,12 @@ $docker_context\
$kubernetes\ $kubernetes\
$terraform\ $terraform\
[](fg:#212736)\ [](fg:#212736)\
\n$character""" \n$time\
$character"""
right_format = """ right_format = """
[](fg:#a3aed2)$time[](fg:#a3aed2)\ [](fg:#212736 bg:#1d2230)\
\n$time\
""" """
[hostname] [hostname]
@@ -163,12 +165,13 @@ format = '[[](fg:#212736 bg:#1b1028) [$symbol](fg:#7b42bc bg:#1b1028) $worksp
[time] [time]
disabled = false disabled = false
time_format = "%R" # Hour:Minute Format time_format = "%R" # Hour:Minute Format
style = "fg:#212736 bg:#a3aed2" style = "fg:#a3aed2"
format = '[  $time ]($style)' format = '[  $time ]($style)'
# format = '[[  $time ](fg:#a0a9cb bg:#1d2230)]($style)'
[character] [character]
success_symbol = '[[](fg:#ddffdd)  [](fg:#ddffdd)](bg:#ddffdd fg:#00af5f) ' success_symbol = '[❯](bold green) '
error_symbol = '[[](fg:#ffddff) 󰚽 [](fg:#ffddff)](bg:#ffddff fg:#f44336) ' error_symbol = '[󰚽 ❯](bold red) '
[os.symbols] [os.symbols]
Windows = "󰍲" Windows = "󰍲"
-215
View File
@@ -1,215 +0,0 @@
#!/usr/bin/env bash
set -u
FAILED=0
STATUS_APT="not_detected"
STATUS_BREW="not_detected"
STATUS_CHEZMOI="not_detected"
STATUS_MISE="not_detected"
STATUS_NEOVIM="not_detected"
# Couleurs
BLUE='\e[00;34;49m'
GRAY='\e[02;37;49m'
RESET='\e[39;49;00m'
# Affiche un message stylisé sur la sortie standard
echo_bold() {
printf '\e[1m%s\e[0m\n' "$*"
}
# Affiche un message informatif stylisé sur la sortie d'erreur
echo_info() {
printf >&2 "\n${BLUE}󰋼 %s${RESET}\n\n" "$*"
}
echo_success() {
printf >&2 "\e[00;01;32;49m %s${RESET}\n" "$*"
}
echo_failed() {
printf >&2 "\e[00;01;31;49m✖ %s${RESET}\n" "$*"
}
echo_skipped() {
printf >&2 "${GRAY}󰜺 %s${RESET}\n" "$*"
}
run() {
local section="$1"
local name="$2"
shift 2
local start=$SECONDS
printf '⏳ [%s] %s...' "$section" "$name"
if "$@"; then
printf '\r\033[K'
echo_success "[$section] $name ($((SECONDS - start))s)"
else
printf '\r\033[K'
echo_failed "[$section] $name ($((SECONDS - start))s)"
# Marque la section comme échouée
eval "STATUS_${section^^}=failed"
FAILED=1
return 1
fi
}
echo
echo_bold "🚀 Mise à jour quotidienne"
echo
# ----------------------------------------------------------------------
# Debian / Ubuntu
# ----------------------------------------------------------------------
if [[ -f /etc/os-release ]]; then
. /etc/os-release
if [[ "$ID" == "debian" || "$ID" == "ubuntu" ]]; then
STATUS_APT="success"
if ((EUID == 0)); then
APT=(apt)
else
APT=(sudo apt)
fi
echo_info "APT"
run APT "Mise à jour des paquets" \
"${APT[@]}" update || true
run APT "Mise à niveau des paquets" \
"${APT[@]}" upgrade -y || true
run APT "Suppression des paquets inutiles" \
"${APT[@]}" autoremove -y || true
run APT "Nettoyage du cache" \
"${APT[@]}" autoclean || true
fi
fi
# ----------------------------------------------------------------------
# Homebrew
# ----------------------------------------------------------------------
if command -v brew >/dev/null 2>&1; then
STATUS_BREW="success"
echo_info "Brew"
run BREW "Mise à jour" \
brew update || true
run BREW "Mise à niveau des paquets" \
brew upgrade || true
fi
# ----------------------------------------------------------------------
# chezmoi
# ----------------------------------------------------------------------
if command -v chezmoi >/dev/null 2>&1; then
STATUS_CHEZMOI="success"
echo_info "chezmoi"
run CHEZMOI "Récupération de la configuration" \
chezmoi git pull || true
run CHEZMOI "Application de la configuration" \
chezmoi apply -v || true
fi
# ----------------------------------------------------------------------
# mise
# ----------------------------------------------------------------------
if command -v mise >/dev/null 2>&1; then
STATUS_MISE="success"
echo_info "mise"
run MISE "Mise à jour de mise" \
mise self-update -y || true
run MISE "Mise à jour des outils" \
mise up || true
fi
# ----------------------------------------------------------------------
# Neovim / AstroNvim
# ----------------------------------------------------------------------
if command -v nvim >/dev/null 2>&1; then
STATUS_NEOVIM="success"
echo_info "Neovim / AstroNvim"
run NEOVIM "Mise à jour d'AstroNvim" \
nvim --headless \
-c 'autocmd User AstroUpdateCompleted quitall' \
-c 'AstroUpdate' \
2>&1 || true
fi
# ----------------------------------------------------------------------
# Récapitulatif
# ----------------------------------------------------------------------
echo
echo_info "Récapitulatif"
echo
echo -n " ► "
case "$STATUS_APT" in
success) echo_success "APT : réussi" ;;
failed) echo_failed "APT : échoué" ;;
not_detected) echo_skipped "APT : non détecté" ;;
esac
echo -n " ► "
case "$STATUS_BREW" in
success) echo_success "Brew : réussi" ;;
failed) echo_failed "Brew : échoué" ;;
not_detected) echo_skipped "Brew : non détecté" ;;
esac
echo -n " ► "
case "$STATUS_CHEZMOI" in
success) echo_success "chezmoi : réussi" ;;
failed) echo_failed "chezmoi : échoué" ;;
not_detected) echo_skipped "chezmoi : non détecté" ;;
esac
echo -n " ► "
case "$STATUS_MISE" in
success) echo_success "mise : réussi" ;;
failed) echo_failed "mise : échoué" ;;
not_detected) echo_skipped "mise : non détecté" ;;
esac
echo -n " ► "
case "$STATUS_NEOVIM" in
success) echo_success "Neovim : réussi" ;;
failed) echo_failed "Neovim : échoué" ;;
not_detected) echo_skipped "Neovim : non détecté" ;;
esac
echo
if ((FAILED)); then
echo_failed "Mise à jour terminée avec des erreurs"
exit 1
else
echo_success "Toutes les mises à jour sont terminées"
exit 0
fi
+1 -1
View File
@@ -15,7 +15,7 @@ if command -v mise &>/dev/null; then
mise bootstrap --yes mise bootstrap --yes
fi fi
# 3. Installer tous les outils déclarés dans ~/.config/mise/config.toml et ~/.config/mise/conf.d/*.toml # 3. Installer tous les outils déclarés dans ~/.config/mise/config.toml
if command -v mise &>/dev/null; then if command -v mise &>/dev/null; then
echo "⚡ Installation des outils via Mise (dont chezmoi si désiré)..." echo "⚡ Installation des outils via Mise (dont chezmoi si désiré)..."
mise install --yes mise install --yes
+4 -51
View File
@@ -1,59 +1,12 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Déclencheur automatique : ce script régénère les toolboxes mise # Déclencheur automatique : ce script se réexécutera si le config.toml de mise change.
# (~/.config/mise/conf.d/<toolbox>.toml) à partir de .chezmoidata/tools.yaml # hash: {{ include "private_dot_config/mise/config.toml.tmpl" | sha256sum }}
# et .chezmoidata/hosts.yaml, puis (ré)installe les outils.
# Il se réexécute automatiquement dès que ces données changent, car la boucle
# ci-dessous fait partie du contenu templaté (donc du hash) de ce script.
# hash config.toml: {{ includeTemplate "private_dot_config/mise/config.toml.tmpl" . | sha256sum }}
set -euo pipefail
export PATH="${HOME}/.local/bin:$PATH" export PATH="${HOME}/.local/bin:$PATH"
MISE_CONF_D="${HOME}/.config/mise/conf.d"
mkdir -p "$MISE_CONF_D"
{{- $hostname := output "hostname" | trim -}}
{{- $username := .chezmoi.username -}}
{{- $currentHost := index .hosts $hostname -}}
{{- $currentUser := "" -}}
{{- if $currentHost -}}
{{- if hasKey $currentHost.users $username -}}
{{- $currentUser = index $currentHost.users $username -}}
{{- end -}}
{{- end }}
echo "✏️ Génération des toolboxes mise pour {{ $username }}@{{ $hostname }}..."
declare -A active_toolboxes=(
{{- if $currentUser }}
{{- range $toolboxName := $currentUser.toolboxes }}
["{{ $toolboxName }}"]=1
{{- end }}
{{- end }}
)
# Suppression des toolboxes qui ne sont plus assignées à cet hôte/utilisateur
for f in "$MISE_CONF_D"/*.toml; do
[ -e "$f" ] || continue
name="$(basename "$f" .toml)"
if [ -z "${active_toolboxes[$name]:-}" ]; then
echo "🗑️ Toolbox obsolète supprimée : $name"
rm -f "$f"
fi
done
{{ if $currentUser }}
{{- range $toolboxName := $currentUser.toolboxes }}
{{- $toolsList := index $.tools.toolboxes $toolboxName }}
{{- if $toolsList }}
echo " → {{ $toolboxName }}.toml"
cat > "$MISE_CONF_D/{{ $toolboxName }}.toml" <<'MISE_TOOLBOX_EOF'
{{ includeTemplate "mise-toolbox-conf" (merge (dict "toolboxName" $toolboxName) $) }}
MISE_TOOLBOX_EOF
{{- end }}
{{- end }}
{{- end }}
if command -v mise &>/dev/null; then if command -v mise &>/dev/null; then
echo "✏️ Modification de la configuration mise détectée."
echo echo
echo "🚀 Mise bootstrap..." echo "🚀 Mise bootstrap..."
mise bootstrap --yes mise bootstrap --yes