feat(mise): Add per-user toolsets to hosts.yaml

Nest each host's toolboxes/tools/configs under users.<username> so
root and xavier can have different tool selections on the same
machine, instead of sharing one profile per host.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 22:09:18 +02:00
co-authored by Claude Sonnet 5
parent d5a4a0d9dd
commit bbda4fdbcb
2 changed files with 76 additions and 40 deletions
+13 -5
View File
@@ -3,9 +3,15 @@
{{- $username := .chezmoi.username }}
# Configuration personnalisée pour l'utilisateur {{ $username }} et l'hôte {{ $hostname }}
{{- $currentHost := index .hosts $hostname -}}
{{- $currentUser := "" -}}
{{- if $currentHost }}
{{- if hasKey $currentHost.users $username }}
{{- $currentUser = index $currentHost.users $username -}}
{{- end }}
{{- end }}
{{- if $currentUser }}
{{- /* 1. Parcourir les toolboxes associées à cet hôte */}}
{{- range $toolboxName := $currentHost.toolboxes }}
{{- range $toolboxName := $currentUser.toolboxes }}
{{- /* Récupérer la liste des outils pour cette toolbox dans tools.yaml */}}
{{- $toolsList := index $.tools.toolboxes $toolboxName }}
{{- if $toolsList }}
@@ -22,16 +28,18 @@ tea = { version = "0.14.2", url = "https://gitea.com/gitea/tea/releases/download
{{- end }}
{{- end }}
{{- /* 2. Parcourir les outils individuels (la liste 'tools:' du host) */}}
{{- if hasKey $currentHost "tools" }}
{{- if $currentHost.tools }}
{{- /* 2. Parcourir les outils individuels (la liste 'tools:' de l'utilisateur) */}}
{{- if hasKey $currentUser "tools" }}
{{- if $currentUser.tools }}
# Outils individuels
{{- range $tool := $currentHost.tools }}
{{- range $tool := $currentUser.tools }}
"{{ $tool }}" = "latest"
{{- end }}
{{- end }}
{{- end }}
{{- else if $currentHost }}
# Aucun profil trouvé dans hosts.yaml pour l'utilisateur {{ $username }} sur la machine : {{ $hostname }}
{{- else }}
# Aucun profil trouvé dans hosts.yaml pour la machine : {{ $hostname }}
{{- end }}