Compare commits
37
Commits
7d7c3fdebc
..
dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
55af3f3539 | ||
|
|
fafcf283a8 | ||
|
|
1c817a92a6 | ||
|
|
17e579e16c | ||
|
|
3a8dca1fcb | ||
|
|
5008a6c23d | ||
|
|
ca9629abf3 | ||
|
|
5d7933ac5a | ||
|
|
e57f78c957 | ||
|
|
48d328ea27 | ||
|
|
55b9a4e8c2 | ||
|
|
990cd6b506 | ||
|
|
24013acd34 | ||
|
|
5076e78819 | ||
|
|
5987036389 | ||
|
|
75ae00ce12 | ||
|
|
a4e2eadbe9 | ||
|
|
06fb51ab5e | ||
|
|
28183fd943 | ||
|
|
da24623dca | ||
|
|
9c757fc1c8 | ||
|
|
7932d9cc61 | ||
|
|
cc95831397 | ||
|
|
f44c6c47f3 | ||
|
|
c0a03acfd6 | ||
|
|
1d2ae95800 | ||
|
|
115cc9f6b7 | ||
|
|
dd229593aa | ||
|
|
bbda4fdbcb | ||
|
|
d5a4a0d9dd | ||
|
|
a73546bcec | ||
|
|
94969e12fe | ||
|
|
3b3f7e60a6 | ||
|
|
80afa299b4 | ||
|
|
6a4e3f2699 | ||
|
|
c1af60939e | ||
|
|
8c82c74f58 |
@@ -55,6 +55,8 @@ hosts:
|
|||||||
configs: {}
|
configs: {}
|
||||||
# Termux (application de terminal pour android)
|
# Termux (application de terminal pour android)
|
||||||
termux-debian:
|
termux-debian:
|
||||||
|
packages:
|
||||||
|
- apt:zsh
|
||||||
users:
|
users:
|
||||||
root:
|
root:
|
||||||
toolboxes:
|
toolboxes:
|
||||||
@@ -65,6 +67,8 @@ hosts:
|
|||||||
- terminal
|
- terminal
|
||||||
- dev-tools
|
- dev-tools
|
||||||
termux-ubuntu:
|
termux-ubuntu:
|
||||||
|
packages:
|
||||||
|
- apt:zsh
|
||||||
users:
|
users:
|
||||||
root:
|
root:
|
||||||
toolboxes:
|
toolboxes:
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ tools:
|
|||||||
- zoxide # Quickly jump to previouously visited directories
|
- zoxide # Quickly jump to previouously visited directories
|
||||||
- broot # Navigate easily inside the file system
|
- broot # Navigate easily inside the file system
|
||||||
- glow # Render markdown on the CLI
|
- glow # Render markdown on the CLI
|
||||||
|
- cargo-binstall # Needed for broot
|
||||||
dev-tools:
|
dev-tools:
|
||||||
- jq
|
- jq
|
||||||
- yq
|
- yq
|
||||||
@@ -25,7 +26,7 @@ tools:
|
|||||||
- gh
|
- gh
|
||||||
- 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.14.2"
|
version: "0.15.1"
|
||||||
dev-languages:
|
dev-languages:
|
||||||
- python
|
- python
|
||||||
- uv
|
- uv
|
||||||
@@ -33,7 +34,6 @@ tools:
|
|||||||
- node
|
- node
|
||||||
- go
|
- go
|
||||||
- rust
|
- rust
|
||||||
- cargo-binstall
|
|
||||||
devops:
|
devops:
|
||||||
- docker-cli
|
- docker-cli
|
||||||
- podman
|
- podman
|
||||||
@@ -54,6 +54,8 @@ tools:
|
|||||||
- claude
|
- claude
|
||||||
- gemini-cli
|
- gemini-cli
|
||||||
- codex
|
- codex
|
||||||
|
- copilot
|
||||||
|
- opencode
|
||||||
|
|
||||||
# # Password managers
|
# # Password managers
|
||||||
# # vault = "latest"
|
# # vault = "latest"
|
||||||
|
|||||||
@@ -4,6 +4,12 @@
|
|||||||
".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 ] #####
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
#
|
||||||
|
# Ce fichier est généré automatiquement par l'outil chezmoi.
|
||||||
|
# Préférez apporter vos modification depuis chezmoi que directement ici.
|
||||||
|
#
|
||||||
@@ -41,3 +41,15 @@
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
|
{{/* Host specific */}}
|
||||||
|
{{- $hostname := output "hostname" | trim -}}
|
||||||
|
{{- $currentHost := index .hosts $hostname -}}
|
||||||
|
{{- if $currentHost }}
|
||||||
|
{{- if hasKey $currentHost "packages" }}
|
||||||
|
# Paquets personnalisés pour l'hôte {{ $hostname }}
|
||||||
|
{{- range $currentHost.packages }}
|
||||||
|
"{{- . }}" = "latest"
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
{{/* .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,14 +10,12 @@
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if $currentUser }}
|
{{- if $currentUser }}
|
||||||
{{- /* 1. Parcourir les toolboxes associées à cet hôte */}}
|
{{- /* Les outils individuels (la liste 'tools:' de l'utilisateur) */}}
|
||||||
{{- range $toolboxName := $currentUser.toolboxes }}
|
{{- if hasKey $currentUser "tools" }}
|
||||||
{{- /* Récupérer la liste des outils pour cette toolbox dans tools.yaml */}}
|
{{- if $currentUser.tools }}
|
||||||
{{- $toolsList := index $.tools.toolboxes $toolboxName }}
|
|
||||||
{{- if $toolsList }}
|
|
||||||
|
|
||||||
# Toolbox: {{ $toolboxName }}
|
# Outils individuels
|
||||||
{{- range $tool := $toolsList }}
|
{{- range $tool := $currentUser.tools }}
|
||||||
{{- /* 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 }}
|
||||||
@@ -29,23 +27,7 @@
|
|||||||
{{- 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 }}
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ gui:
|
|||||||
- bold
|
- bold
|
||||||
nerdFontsVersion: "3"
|
nerdFontsVersion: "3"
|
||||||
git:
|
git:
|
||||||
pagers:
|
diffRenderers:
|
||||||
- colorArg: always
|
- colorArg: always
|
||||||
pager: delta --paging=never
|
command: delta --paging=never
|
||||||
parseEmoji: true
|
parseEmoji: true
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
# Ce fichier est généré automatiquement par l'outil chezmoi
|
{{ includeTemplate "chezmoi-managed-header" . }}
|
||||||
# Préférez apporter vos modification depuis chezmoi que directement ici
|
|
||||||
|
|
||||||
[settings]
|
[settings]
|
||||||
experimental = true
|
experimental = true
|
||||||
@@ -10,7 +9,7 @@ binstall = true
|
|||||||
######################### [ Bootstrap ] #########################
|
######################### [ Bootstrap ] #########################
|
||||||
|
|
||||||
[bootstrap.packages]
|
[bootstrap.packages]
|
||||||
{{ template "mise-bootstrap-packages" . }}
|
{{ includeTemplate "mise-bootstrap-packages" . }}
|
||||||
|
|
||||||
# coreutils grep less
|
# coreutils grep less
|
||||||
# tig
|
# tig
|
||||||
@@ -36,8 +35,9 @@ chezmoi = "latest"
|
|||||||
neovim = "latest"
|
neovim = "latest"
|
||||||
tree-sitter = "latest"
|
tree-sitter = "latest"
|
||||||
|
|
||||||
# Tools automated with chezmoi
|
# Individual tools automated with chezmoi
|
||||||
{{ template "mise-tools" . }}
|
# (toolboxes from .chezmoidata/tools.yaml live in ~/.config/mise/conf.d/<toolbox>.toml)
|
||||||
|
{{ includeTemplate "mise-tools" . }}
|
||||||
|
|
||||||
# Password managers
|
# Password managers
|
||||||
# vault = "latest"
|
# vault = "latest"
|
||||||
|
|||||||
@@ -6,23 +6,22 @@ $directory\
|
|||||||
$git_branch\
|
$git_branch\
|
||||||
$git_commit\
|
$git_commit\
|
||||||
$git_status\
|
$git_status\
|
||||||
|
$git_state\
|
||||||
$direnv\
|
$direnv\
|
||||||
$mise\
|
$mise\
|
||||||
[](fg:#394260 bg:#212736)\
|
[](fg:#394260 bg:#212736)\
|
||||||
$golang\
|
|
||||||
$rust\
|
$rust\
|
||||||
|
$golang\
|
||||||
$python\
|
$python\
|
||||||
$nodejs\
|
$nodejs\
|
||||||
$docker_context\
|
$docker_context\
|
||||||
$kubernetes\
|
$kubernetes\
|
||||||
$terraform\
|
$terraform\
|
||||||
[](fg:#212736)\
|
[](fg:#212736)\
|
||||||
$character"""
|
\n$character\
|
||||||
|
"""
|
||||||
|
|
||||||
right_format = """
|
right_format = """
|
||||||
[](fg:#a3aed2)\
|
|
||||||
$time\
|
|
||||||
[ ](fg:#a3aed2)\
|
|
||||||
[](fg:#a3aed2)\
|
[](fg:#a3aed2)\
|
||||||
$shell\
|
$shell\
|
||||||
$username\
|
$username\
|
||||||
@@ -31,6 +30,10 @@ $os\
|
|||||||
[](bg:#394260 fg:#a3aed2)\
|
[](bg:#394260 fg:#a3aed2)\
|
||||||
$container\
|
$container\
|
||||||
$hostname\
|
$hostname\
|
||||||
|
[ ](fg:#394260)\
|
||||||
|
[](fg:#a3aed2)\
|
||||||
|
$time\
|
||||||
|
[](fg:#a3aed2)\
|
||||||
"""
|
"""
|
||||||
|
|
||||||
[hostname]
|
[hostname]
|
||||||
@@ -44,7 +47,7 @@ format = '[$ssh_symbol]($style)[ $hostname]($style)'
|
|||||||
|
|
||||||
[container]
|
[container]
|
||||||
style = "bg:#394260 fg:#a3aed2"
|
style = "bg:#394260 fg:#a3aed2"
|
||||||
format = '[ $symbol $name ]($style)'
|
format = '[ $symbol $name ]($style)'
|
||||||
|
|
||||||
[os]
|
[os]
|
||||||
disabled = false
|
disabled = false
|
||||||
@@ -86,27 +89,32 @@ format = '[ $symbol $branch ]($style)'
|
|||||||
|
|
||||||
[git_commit]
|
[git_commit]
|
||||||
disabled = false
|
disabled = false
|
||||||
|
style = "fg:#769ff0 bg:#394260"
|
||||||
tag_disabled = false
|
tag_disabled = false
|
||||||
tag_symbol = ' '
|
tag_symbol = ' '
|
||||||
only_detached = true
|
only_detached = true
|
||||||
style = "fg:#769ff0 bg:#394260"
|
|
||||||
format = '[ $hash $tag ]($style)'
|
format = '[ $hash $tag ]($style)'
|
||||||
|
|
||||||
[git_status]
|
[git_status]
|
||||||
disabled = false
|
disabled = false
|
||||||
style = "fg:#769ff0 bg:#394260"
|
style = "fg:#769ff0 bg:#394260"
|
||||||
format = '[$all_status$ahead_behind]($style)'
|
|
||||||
ahead = '⇡${count}'
|
ahead = '⇡${count}'
|
||||||
behind = '⇣${count}'
|
behind = '⇣${count}'
|
||||||
diverged = '⇕⇡${ahead_count}⇣${behind_count}'
|
diverged = '[⇕⇡${ahead_count}⇣${behind_count}](fg:#FFA500 bg:#394260)'
|
||||||
up_to_date = ''
|
up_to_date = ''
|
||||||
modified = '[$count ](fg:yellow bg:#394260)'
|
modified = '[$count ](fg:#FFFF00 bg:#394260)'
|
||||||
staged = '[$count ](fg:green bg:#394260)'
|
staged = '[$count ](fg:#00D000 bg:#394260)'
|
||||||
deleted = '[$count ](fg:red bg:#394260)'
|
deleted = '[$count ](fg:#FF0000 bg:#394260)'
|
||||||
renamed = '[$count ](fg:blue bg:#394260)'
|
renamed = '[$count ](fg:#87CEEB bg:#394260)'
|
||||||
untracked = '[$count ](fg:gray bg:#394260)'
|
untracked = '[$count ](fg:#CCCCCC bg:#394260)'
|
||||||
conflicted = '[$count ](fg:red bg:#394260)'
|
conflicted = '[$count ](fg:#FF0000 bg:#394260)'
|
||||||
stashed = '$count📦' #
|
stashed = '[$count ](fg:#FFA500 bg:#394260)' #
|
||||||
|
format = '[$all_status$ahead_behind ]($style)'
|
||||||
|
|
||||||
|
[git_state]
|
||||||
|
disabled = false
|
||||||
|
style = "fg:#769ff0 bg:#394260"
|
||||||
|
format = ' [$state( $progress_current/$progress_total)]($style) '
|
||||||
|
|
||||||
[direnv]
|
[direnv]
|
||||||
disabled = false
|
disabled = false
|
||||||
@@ -165,14 +173,16 @@ format = '[[](fg:#212736 bg:#1b1028) [$symbol](fg:#7b42bc bg:#1b1028) $worksp
|
|||||||
|
|
||||||
[time]
|
[time]
|
||||||
disabled = false
|
disabled = false
|
||||||
time_format = "%R" # Hour:Minute Format
|
style = "fg:#212736 bg:#a3aed2"
|
||||||
style = "fg:#ffffff bg:#a3aed2"
|
|
||||||
format = '[ $time ]($style)'
|
format = '[ $time ]($style)'
|
||||||
|
time_format = '%T %A %e %B %Y'
|
||||||
# format = '[[ $time ](fg:#a0a9cb bg:#1d2230)]($style)'
|
# 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) '
|
||||||
|
success_symbol = '[ [](fg:#ddffdd)](bg:#ddffdd fg:#00af5f) '
|
||||||
|
error_symbol = '[ [](fg:#ffddff)](bg:#ffddff fg:#f44336) '
|
||||||
|
|
||||||
[os.symbols]
|
[os.symbols]
|
||||||
Windows = ""
|
Windows = ""
|
||||||
|
|||||||
@@ -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
|
# 3. Installer tous les outils déclarés dans ~/.config/mise/config.toml et ~/.config/mise/conf.d/*.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
|
||||||
|
|||||||
@@ -1,12 +1,59 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# Déclencheur automatique : ce script se réexécutera si le config.toml de mise change.
|
# Déclencheur automatique : ce script régénère les toolboxes mise
|
||||||
# hash: {{ include "private_dot_config/mise/config.toml.tmpl" | sha256sum }}
|
# (~/.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
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
Reference in New Issue
Block a user