Compare commits
7
Commits
dev
..
2f5d904076
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2f5d904076 | ||
|
|
25889880fc | ||
|
|
7f97e5d50e | ||
|
|
c611710d37 | ||
|
|
649cfe25b3 | ||
|
|
12fad1e849 | ||
|
|
3af209a689 |
@@ -26,7 +26,7 @@ tools:
|
||||
- gh
|
||||
- tea:
|
||||
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:
|
||||
- python
|
||||
- uv
|
||||
@@ -54,8 +54,6 @@ tools:
|
||||
- claude
|
||||
- gemini-cli
|
||||
- codex
|
||||
- copilot
|
||||
- opencode
|
||||
|
||||
# # Password managers
|
||||
# # vault = "latest"
|
||||
|
||||
@@ -4,12 +4,6 @@
|
||||
".config/bash":
|
||||
type: git-repo
|
||||
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
|
||||
|
||||
##### [ VIM ] #####
|
||||
|
||||
@@ -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 }}
|
||||
@@ -10,12 +10,14 @@
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if $currentUser }}
|
||||
{{- /* Les outils individuels (la liste 'tools:' de l'utilisateur) */}}
|
||||
{{- if hasKey $currentUser "tools" }}
|
||||
{{- if $currentUser.tools }}
|
||||
{{- /* 1. Parcourir les toolboxes associées à cet hôte */}}
|
||||
{{- range $toolboxName := $currentUser.toolboxes }}
|
||||
{{- /* Récupérer la liste des outils pour cette toolbox dans tools.yaml */}}
|
||||
{{- $toolsList := index $.tools.toolboxes $toolboxName }}
|
||||
{{- if $toolsList }}
|
||||
|
||||
# Outils individuels
|
||||
{{- range $tool := $currentUser.tools }}
|
||||
# Toolbox: {{ $toolboxName }}
|
||||
{{- range $tool := $toolsList }}
|
||||
{{- /* Un outil est soit une chaîne ("nom"), soit un objet { nom: {version, ...params mise} } */}}
|
||||
{{- if kindIs "map" $tool }}
|
||||
{{- range $toolName, $params := $tool }}
|
||||
@@ -27,7 +29,23 @@
|
||||
{{- 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 }}
|
||||
# Aucun profil trouvé dans hosts.yaml pour l'utilisateur {{ $username }} sur la machine : {{ $hostname }}
|
||||
{{- else }}
|
||||
|
||||
@@ -11,7 +11,7 @@ gui:
|
||||
- bold
|
||||
nerdFontsVersion: "3"
|
||||
git:
|
||||
diffRenderers:
|
||||
pagers:
|
||||
- colorArg: always
|
||||
command: delta --paging=never
|
||||
pager: delta --paging=never
|
||||
parseEmoji: true
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{{ includeTemplate "chezmoi-managed-header" . }}
|
||||
{{ template "chezmoi-managed-header" . }}
|
||||
|
||||
[settings]
|
||||
experimental = true
|
||||
@@ -9,7 +9,7 @@ binstall = true
|
||||
######################### [ Bootstrap ] #########################
|
||||
|
||||
[bootstrap.packages]
|
||||
{{ includeTemplate "mise-bootstrap-packages" . }}
|
||||
{{ template "mise-bootstrap-packages" . }}
|
||||
|
||||
# coreutils grep less
|
||||
# tig
|
||||
@@ -35,9 +35,8 @@ chezmoi = "latest"
|
||||
neovim = "latest"
|
||||
tree-sitter = "latest"
|
||||
|
||||
# Individual tools automated with chezmoi
|
||||
# (toolboxes from .chezmoidata/tools.yaml live in ~/.config/mise/conf.d/<toolbox>.toml)
|
||||
{{ includeTemplate "mise-tools" . }}
|
||||
# Tools automated with chezmoi
|
||||
{{ template "mise-tools" . }}
|
||||
|
||||
# Password managers
|
||||
# vault = "latest"
|
||||
|
||||
@@ -15,7 +15,7 @@ if command -v mise &>/dev/null; then
|
||||
mise bootstrap --yes
|
||||
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
|
||||
echo "⚡ Installation des outils via Mise (dont chezmoi si désiré)..."
|
||||
mise install --yes
|
||||
|
||||
@@ -1,59 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
# Déclencheur automatique : ce script régénère les toolboxes mise
|
||||
# (~/.config/mise/conf.d/<toolbox>.toml) à partir de .chezmoidata/tools.yaml
|
||||
# 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
|
||||
# Déclencheur automatique : ce script se réexécutera si le config.toml de mise change.
|
||||
# hash: {{ include "private_dot_config/mise/config.toml.tmpl" | sha256sum }}
|
||||
|
||||
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
|
||||
echo "✏️ Modification de la configuration mise détectée."
|
||||
|
||||
echo
|
||||
echo "🚀 Mise bootstrap..."
|
||||
mise bootstrap --yes
|
||||
|
||||
Reference in New Issue
Block a user