Merge dev into main #3
No files matched your search
@@ -51,7 +51,6 @@ 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:
|
||||||
|
|||||||
@@ -26,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
|
||||||
@@ -55,6 +55,7 @@ tools:
|
|||||||
- gemini-cli
|
- gemini-cli
|
||||||
- codex
|
- codex
|
||||||
- copilot
|
- 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 ] #####
|
||||||
@@ -20,4 +26,10 @@
|
|||||||
url: https://gitea.cloud.logerais.com/xavier/config-astronvim.git
|
url: https://gitea.cloud.logerais.com/xavier/config-astronvim.git
|
||||||
refreshPeriod: 24h # Vérifie toutes les 24h
|
refreshPeriod: 24h # Vérifie toutes les 24h
|
||||||
|
|
||||||
|
##### [ PASS ] #####
|
||||||
|
|
||||||
|
# ".password-store":
|
||||||
|
# type: git-repo
|
||||||
|
# url: https://gitea.cloud.logerais.com/xavier/pass.git
|
||||||
|
# refreshPeriod: 24h # Vérifie toutes les 24h
|
||||||
|
|
||||||
@@ -1 +1,2 @@
|
|||||||
README.md
|
README.md
|
||||||
|
TODO.md
|
||||||
@@ -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 }}
|
||||||
|
|||||||
@@ -0,0 +1,6 @@
|
|||||||
|
# TODO
|
||||||
|
|
||||||
|
- [ ] Review encryption workflow to manage git credentials (tea login helpers)
|
||||||
|
- [ ] Manage basic GPG Config (+ import of personnal public key)
|
||||||
|
- [ ] Integrate files from repo https://gitea.cloud.logerais.com/xavier/Ubuntu (with conditions)
|
||||||
|
- [ ] Manage fonts (See https://gitea.cloud.logerais.com/xavier/config-bootstrap/src/branch/master/fonts.bash)
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
# Set PATH
|
||||||
|
export PATH="${HOME}/.local/bin:${PATH}"
|
||||||
|
|
||||||
|
# Activate mise
|
||||||
|
eval "$(mise activate zsh)"
|
||||||
|
|
||||||
|
# Activate starship
|
||||||
|
export STARSHIP_CONFIG="${HOME}/.config/starship-zsh.toml"
|
||||||
|
eval "$(starship init zsh)"
|
||||||
|
|
||||||
|
# Add some usefull tools
|
||||||
|
eval "$(zoxide init zsh)"
|
||||||
|
|
||||||
|
# Add some usefull aliases
|
||||||
|
source "${HOME}/.config/bash/aliases.d/generic"
|
||||||
|
source "${HOME}/.config/bash/aliases.d/security"
|
||||||
|
source "${HOME}/.config/bash/aliases.d/vim"
|
||||||
|
source "${HOME}/.config/bash/aliases.d/git"
|
||||||
|
source "${HOME}/.config/bash/aliases.d/kubectl"
|
||||||
|
source "${HOME}/.config/bash/aliases.d/lsd"
|
||||||
|
source "${HOME}/.config/bash/aliases.d/bat"
|
||||||
|
source "${HOME}/.config/bash/aliases.d/lazygit"
|
||||||
|
|
||||||
|
# Define prefered apps
|
||||||
|
source "${HOME}/.config/bash/rc.after.d/apps"
|
||||||
@@ -46,6 +46,19 @@ 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
|
||||||
|
|||||||
@@ -1,47 +0,0 @@
|
|||||||
[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
|
|
||||||
@@ -0,0 +1,70 @@
|
|||||||
|
{{- $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
|
||||||
@@ -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
|
||||||
@@ -35,7 +35,8 @@ chezmoi = "latest"
|
|||||||
neovim = "latest"
|
neovim = "latest"
|
||||||
tree-sitter = "latest"
|
tree-sitter = "latest"
|
||||||
|
|
||||||
# Tools automated with chezmoi
|
# Individual tools automated with chezmoi
|
||||||
|
# (toolboxes from .chezmoidata/tools.yaml live in ~/.config/mise/conf.d/<toolbox>.toml)
|
||||||
{{ includeTemplate "mise-tools" . }}
|
{{ includeTemplate "mise-tools" . }}
|
||||||
|
|
||||||
# Password managers
|
# Password managers
|
||||||
|
|||||||
@@ -0,0 +1,245 @@
|
|||||||
|
"$schema" = 'https://starship.rs/config-schema.json'
|
||||||
|
|
||||||
|
format = """
|
||||||
|
[ ](fg:#769ff0)\
|
||||||
|
$directory\
|
||||||
|
[](bg:#394260 fg:#769ff0)\
|
||||||
|
$git_branch\
|
||||||
|
$git_commit\
|
||||||
|
$git_status\
|
||||||
|
$git_state\
|
||||||
|
$mise\
|
||||||
|
$direnv\
|
||||||
|
[](fg:#394260 bg:#212736)\
|
||||||
|
$rust\
|
||||||
|
$golang\
|
||||||
|
$python\
|
||||||
|
$nodejs\
|
||||||
|
$docker_context\
|
||||||
|
$kubernetes\
|
||||||
|
$terraform\
|
||||||
|
[](fg:#212736)\
|
||||||
|
\n$character\
|
||||||
|
"""
|
||||||
|
|
||||||
|
right_format = """
|
||||||
|
[](fg:#a3aed2)$time[](fg:#a3aed2)\
|
||||||
|
"""
|
||||||
|
|
||||||
|
[hostname]
|
||||||
|
disabled = false
|
||||||
|
ssh_only = false
|
||||||
|
style = "bg:#394260 fg:#a3aed2"
|
||||||
|
format = '[$ssh_symbol]($style)[ $hostname ]($style)'
|
||||||
|
# detect_env_vars = ['!TMUX', 'SSH_CONNECTION']
|
||||||
|
# trim_at = '.companyname.com'
|
||||||
|
# aliases = { "Max's MacBook Pro" = "home" }
|
||||||
|
|
||||||
|
[container]
|
||||||
|
style = "bg:#394260 fg:#a3aed2"
|
||||||
|
format = '[ $symbol $name ]($style)'
|
||||||
|
|
||||||
|
[os]
|
||||||
|
disabled = false
|
||||||
|
style = "bg:#394260 fg:#a3aed2"
|
||||||
|
format = "[ $symbol $name ]($style)"
|
||||||
|
|
||||||
|
[username]
|
||||||
|
show_always = true
|
||||||
|
style_user = "bg:#a3aed2 fg:#212736"
|
||||||
|
style_root = "bg:#a3aed2 fg:#990000 bold"
|
||||||
|
format = '[ $user ]($style)'
|
||||||
|
|
||||||
|
[shell]
|
||||||
|
disabled = false
|
||||||
|
bash_indicator = ' bash'
|
||||||
|
zsh_indicator = ' zsh'
|
||||||
|
fish_indicator = ' fish'
|
||||||
|
powershell_indicator = '_ Powershell'
|
||||||
|
unknown_indicator = 'unknown shell'
|
||||||
|
format = '[ $indicator ]($style)'
|
||||||
|
style = "bg:#a3aed2 fg:#212736"
|
||||||
|
|
||||||
|
[sudo]
|
||||||
|
disabled = false
|
||||||
|
|
||||||
|
[directory]
|
||||||
|
disabled = false
|
||||||
|
truncation_length = 5
|
||||||
|
truncation_symbol = "…/"
|
||||||
|
truncate_to_repo = false
|
||||||
|
style = "fg:#e3e5e5 bg:#769ff0"
|
||||||
|
format = "[ $path ]($style)"
|
||||||
|
|
||||||
|
[git_branch]
|
||||||
|
disabled = false
|
||||||
|
symbol = ""
|
||||||
|
style = "fg:#769ff0 bg:#394260 bold"
|
||||||
|
format = '[ $symbol $branch ]($style)'
|
||||||
|
|
||||||
|
[git_commit]
|
||||||
|
disabled = false
|
||||||
|
only_detached = true
|
||||||
|
tag_disabled = false
|
||||||
|
tag_symbol = ' '
|
||||||
|
style = "fg:#769ff0 bg:#394260"
|
||||||
|
format = '[ $hash $tag ]($style)'
|
||||||
|
|
||||||
|
[git_status]
|
||||||
|
disabled = false
|
||||||
|
ahead = '⇡${count}'
|
||||||
|
behind = '⇣${count}'
|
||||||
|
diverged = '[⇕⇡${ahead_count}⇣${behind_count}](fg:#FFA500 bg:#394260)'
|
||||||
|
up_to_date = ''
|
||||||
|
modified = '[$count ](fg:#FFFF00 bg:#394260)'
|
||||||
|
staged = '[$count ](fg:#00D000 bg:#394260)'
|
||||||
|
deleted = '[$count ](fg:#FF0000 bg:#394260)'
|
||||||
|
renamed = '[$count ](fg:#87CEEB bg:#394260)'
|
||||||
|
untracked = '[$count ](fg:#CCCCCC bg:#394260)'
|
||||||
|
conflicted = '[$count ](fg:#FF0000 bg:#394260)'
|
||||||
|
stashed = '[$count ](fg:#FFA500 bg:#394260)' #
|
||||||
|
style = "fg:#769ff0 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]
|
||||||
|
disabled = false
|
||||||
|
|
||||||
|
[mise]
|
||||||
|
disabled = true
|
||||||
|
style = "bg:#212736 fg:white"
|
||||||
|
format = '[$symbol$health]($style)'
|
||||||
|
|
||||||
|
[nodejs]
|
||||||
|
symbol = ""
|
||||||
|
style = "bg:#212736"
|
||||||
|
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
||||||
|
|
||||||
|
[bun]
|
||||||
|
symbol = ""
|
||||||
|
style = "bg:#212736"
|
||||||
|
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
||||||
|
|
||||||
|
[rust]
|
||||||
|
symbol = ""
|
||||||
|
style = "bg:#212736"
|
||||||
|
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
||||||
|
|
||||||
|
[golang]
|
||||||
|
symbol = ""
|
||||||
|
style = "bg:#212736"
|
||||||
|
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
||||||
|
|
||||||
|
[php]
|
||||||
|
symbol = ""
|
||||||
|
style = "bg:#212736"
|
||||||
|
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
||||||
|
|
||||||
|
[python]
|
||||||
|
symbol = ""
|
||||||
|
style = "bg:#212736"
|
||||||
|
format = '[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)'
|
||||||
|
|
||||||
|
[docker_context]
|
||||||
|
disabled = false
|
||||||
|
only_with_files = false
|
||||||
|
symbol = " "
|
||||||
|
style = "fg:#2560ff bg:#ffffff"
|
||||||
|
format = '[[](fg:#212736 bg:#ffffff) $symbol $context [](fg:#ffffff bg:#212736)]($style)'
|
||||||
|
|
||||||
|
[kubernetes]
|
||||||
|
disabled = false
|
||||||
|
symbol = ""
|
||||||
|
style = "bg:#316ce6 fg:#a3aed2"
|
||||||
|
format = '[[](fg:#212736 bg:#316ce6) $symbol $context (\($namespace\))[](fg:#316ce6 bg:#212736)]($style)'
|
||||||
|
|
||||||
|
[terraform]
|
||||||
|
disabled = false
|
||||||
|
symbol = " "
|
||||||
|
style = "bg:#1b1028 fg:#7b42bc"
|
||||||
|
format = '[[](fg:#212736 bg:#1b1028) [$symbol](fg:#7b42bc bg:#1b1028) $workspace [](fg:#1b1028 bg:#212736)]($style)'
|
||||||
|
|
||||||
|
[time]
|
||||||
|
disabled = false
|
||||||
|
time_format = '%T %A %e %B %Y'
|
||||||
|
style = "fg:#212736 bg:#a3aed2"
|
||||||
|
format = '[ $time ]($style)'
|
||||||
|
|
||||||
|
[character]
|
||||||
|
success_symbol = '[[](fg:#ddffdd) [](fg:#ddffdd)](bg:#ddffdd fg:#00af5f) '
|
||||||
|
error_symbol = '[[](fg:#ffddff) [](fg:#ffddff)](bg:#ffddff fg:#f44336) '
|
||||||
|
vimcmd_symbol = '[[](fg:#007f00) ViM mode [](fg:#007f00)](bg:#007f00) '
|
||||||
|
|
||||||
|
[os.symbols]
|
||||||
|
Windows = ""
|
||||||
|
Ubuntu = ""
|
||||||
|
SUSE = ""
|
||||||
|
Raspbian = ""
|
||||||
|
Mint = ""
|
||||||
|
Macos = ""
|
||||||
|
Manjaro = ""
|
||||||
|
Linux = ""
|
||||||
|
Gentoo = ""
|
||||||
|
Fedora = ""
|
||||||
|
Alpine = ""
|
||||||
|
Amazon = ""
|
||||||
|
Android = ""
|
||||||
|
AOSC = ""
|
||||||
|
Arch = ""
|
||||||
|
Artix = ""
|
||||||
|
EndeavourOS = ""
|
||||||
|
CentOS = ""
|
||||||
|
Debian = ""
|
||||||
|
Redhat = ""
|
||||||
|
RedHatEnterprise = ""
|
||||||
|
Pop = ""
|
||||||
|
|
||||||
|
[directory.substitutions]
|
||||||
|
"Documents" = " "
|
||||||
|
"Pictures" = " "
|
||||||
|
"Images" = " "
|
||||||
|
"Music" = " "
|
||||||
|
"Musique" = " "
|
||||||
|
"Movies" = " "
|
||||||
|
"Films" = " "
|
||||||
|
"Downloads" = " "
|
||||||
|
"Téléchargements" = " "
|
||||||
|
"Developer" = " "
|
||||||
|
|
||||||
|
# Nerdfont symbols
|
||||||
|
#
|
||||||
|
# ✓ ✗ ✔ ✘
|
||||||
|
# ❬ ❭ ❮ ❯ ❰ ❱ ❲ ❳ ❴ ❵
|
||||||
|
# ➛ ➜ ➝ ➞ ➢ ➣ ➤
|
||||||
|
|
||||||
|
# Powerline colorsheme (from powerline source file colorsheme.py)
|
||||||
|
# 0x000000, 0xc00000, 0x008000, 0x804000, 0x0000c0, 0xc000c0, 0x008080, 0xc0c0c0, 0x808080, 0xff6060, # 0
|
||||||
|
# 0x00ff00, 0xffff00, 0x8080ff, 0xff40ff, 0x00ffff, 0xffffff, 0x000000, 0x00005f, 0x000087, 0x0000af, # 1
|
||||||
|
# 0x0000d7, 0x0000ff, 0x005f00, 0x005f5f, 0x005f87, 0x005faf, 0x005fd7, 0x005fff, 0x008700, 0x00875f, # 2
|
||||||
|
# 0x008787, 0x0087af, 0x0087d7, 0x0087ff, 0x00af00, 0x00af5f, 0x00af87, 0x00afaf, 0x00afd7, 0x00afff, # 3
|
||||||
|
# 0x00d700, 0x00d75f, 0x00d787, 0x00d7af, 0x00d7d7, 0x00d7ff, 0x00ff00, 0x00ff5f, 0x00ff87, 0x00ffaf, # 4
|
||||||
|
# 0x00ffd7, 0x00ffff, 0x5f0000, 0x5f005f, 0x5f0087, 0x5f00af, 0x5f00d7, 0x5f00ff, 0x5f5f00, 0x5f5f5f, # 5
|
||||||
|
# 0x5f5f87, 0x5f5faf, 0x5f5fd7, 0x5f5fff, 0x5f8700, 0x5f875f, 0x5f8787, 0x5f87af, 0x5f87d7, 0x5f87ff, # 6
|
||||||
|
# 0x5faf00, 0x5faf5f, 0x5faf87, 0x5fafaf, 0x5fafd7, 0x5fafff, 0x5fd700, 0x5fd75f, 0x5fd787, 0x5fd7af, # 7
|
||||||
|
# 0x5fd7d7, 0x5fd7ff, 0x5fff00, 0x5fff5f, 0x5fff87, 0x5fffaf, 0x5fffd7, 0x5fffff, 0x870000, 0x87005f, # 8
|
||||||
|
# 0x870087, 0x8700af, 0x8700d7, 0x8700ff, 0x875f00, 0x875f5f, 0x875f87, 0x875faf, 0x875fd7, 0x875fff, # 9
|
||||||
|
# 0x878700, 0x87875f, 0x878787, 0x8787af, 0x8787d7, 0x8787ff, 0x87af00, 0x87af5f, 0x87af87, 0x87afaf, # 10
|
||||||
|
# 0x87afd7, 0x87afff, 0x87d700, 0x87d75f, 0x87d787, 0x87d7af, 0x87d7d7, 0x87d7ff, 0x87ff00, 0x87ff5f, # 11
|
||||||
|
# 0x87ff87, 0x87ffaf, 0x87ffd7, 0x87ffff, 0xaf0000, 0xaf005f, 0xaf0087, 0xaf00af, 0xaf00d7, 0xaf00ff, # 12
|
||||||
|
# 0xaf5f00, 0xaf5f5f, 0xaf5f87, 0xaf5faf, 0xaf5fd7, 0xaf5fff, 0xaf8700, 0xaf875f, 0xaf8787, 0xaf87af, # 13
|
||||||
|
# 0xaf87d7, 0xaf87ff, 0xafaf00, 0xafaf5f, 0xafaf87, 0xafafaf, 0xafafd7, 0xafafff, 0xafd700, 0xafd75f, # 14
|
||||||
|
# 0xafd787, 0xafd7af, 0xafd7d7, 0xafd7ff, 0xafff00, 0xafff5f, 0xafff87, 0xafffaf, 0xafffd7, 0xafffff, # 15
|
||||||
|
# 0xd70000, 0xd7005f, 0xd70087, 0xd700af, 0xd700d7, 0xd700ff, 0xd75f00, 0xd75f5f, 0xd75f87, 0xd75faf, # 16
|
||||||
|
# 0xd75fd7, 0xd75fff, 0xd78700, 0xd7875f, 0xd78787, 0xd787af, 0xd787d7, 0xd787ff, 0xd7af00, 0xd7af5f, # 17
|
||||||
|
# 0xd7af87, 0xd7afaf, 0xd7afd7, 0xd7afff, 0xd7d700, 0xd7d75f, 0xd7d787, 0xd7d7af, 0xd7d7d7, 0xd7d7ff, # 18
|
||||||
|
# 0xd7ff00, 0xd7ff5f, 0xd7ff87, 0xd7ffaf, 0xd7ffd7, 0xd7ffff, 0xff0000, 0xff005f, 0xff0087, 0xff00af, # 19
|
||||||
|
# 0xff00d7, 0xff00ff, 0xff5f00, 0xff5f5f, 0xff5f87, 0xff5faf, 0xff5fd7, 0xff5fff, 0xff8700, 0xff875f, # 20
|
||||||
|
# 0xff8787, 0xff87af, 0xff87d7, 0xff87ff, 0xffaf00, 0xffaf5f, 0xffaf87, 0xffafaf, 0xffafd7, 0xffafff, # 21
|
||||||
|
# 0xffd700, 0xffd75f, 0xffd787, 0xffd7af, 0xffd7d7, 0xffd7ff, 0xffff00, 0xffff5f, 0xffff87, 0xffffaf, # 22
|
||||||
|
# 0xffffd7, 0xffffff, 0x080808, 0x121212, 0x1c1c1c, 0x262626, 0x303030, 0x3a3a3a, 0x444444, 0x4e4e4e, # 23
|
||||||
|
# 0x585858, 0x626262, 0x6c6c6c, 0x767676, 0x808080, 0x8a8a8a, 0x949494, 0x9e9e9e, 0xa8a8a8, 0xb2b2b2, # 24
|
||||||
|
# 0xbcbcbc, 0xc6c6c6, 0xd0d0d0, 0xdadada, 0xe4e4e4, 0xeeeeee # 25
|
||||||
@@ -25,12 +25,10 @@ $docker_context\
|
|||||||
$kubernetes\
|
$kubernetes\
|
||||||
$terraform\
|
$terraform\
|
||||||
[](fg:#212736)\
|
[](fg:#212736)\
|
||||||
\n$time\
|
\n$character"""
|
||||||
$character"""
|
|
||||||
|
|
||||||
right_format = """
|
right_format = """
|
||||||
[](fg:#212736 bg:#1d2230)\
|
[](fg:#a3aed2)$time[](fg:#a3aed2)\
|
||||||
\n$time\
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
[hostname]
|
[hostname]
|
||||||
@@ -165,13 +163,12 @@ 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:#a3aed2"
|
style = "fg:#212736 bg:#a3aed2"
|
||||||
format = '[ $time ]($style)'
|
format = '[ $time ]($style)'
|
||||||
# format = '[[ $time ](fg:#a0a9cb bg:#1d2230)]($style)'
|
|
||||||
|
|
||||||
[character]
|
[character]
|
||||||
success_symbol = '[ ❯](bold green) '
|
success_symbol = '[[](fg:#ddffdd) [](fg:#ddffdd)](bg:#ddffdd fg:#00af5f) '
|
||||||
error_symbol = '[ ❯](bold red) '
|
error_symbol = '[[](fg:#ffddff) [](fg:#ffddff)](bg:#ffddff fg:#f44336) '
|
||||||
|
|
||||||
[os.symbols]
|
[os.symbols]
|
||||||
Windows = ""
|
Windows = ""
|
||||||
|
|||||||
@@ -0,0 +1,71 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if (command -v fzf &>/dev/null); then
|
||||||
|
|
||||||
|
# Shell integration
|
||||||
|
eval "$(fzf --zsh)"
|
||||||
|
|
||||||
|
# Options par défaut
|
||||||
|
FZF_DEFAULT_OPTS="\
|
||||||
|
--height 60%
|
||||||
|
--border rounded
|
||||||
|
--layout reverse
|
||||||
|
--highlight-line \
|
||||||
|
--info=inline-right \
|
||||||
|
--ansi \
|
||||||
|
"
|
||||||
|
export FZF_DEFAULT_OPTS
|
||||||
|
|
||||||
|
# Navigation vers un répertoire
|
||||||
|
FZF_ALT_C_OPTS="$(
|
||||||
|
cat <<'EOF'
|
||||||
|
--prompt ' '
|
||||||
|
--pointer ❯
|
||||||
|
--marker ✔
|
||||||
|
EOF
|
||||||
|
)"
|
||||||
|
export FZF_ALT_C_OPTS
|
||||||
|
|
||||||
|
# Selection de fichiers
|
||||||
|
FZF_CTRL_T_OPTS="$(
|
||||||
|
cat <<'EOF'
|
||||||
|
--prompt ' '
|
||||||
|
--pointer ❯
|
||||||
|
--marker ✔
|
||||||
|
--preview="bat --color=always --style=-header {}"
|
||||||
|
EOF
|
||||||
|
)"
|
||||||
|
export FZF_CTRL_T_OPTS
|
||||||
|
|
||||||
|
# Navigation dans l'historique
|
||||||
|
FZF_CTRL_R_OPTS="$(
|
||||||
|
cat <<'EOF'
|
||||||
|
--prompt ' '
|
||||||
|
--pointer ❯
|
||||||
|
--marker ✔
|
||||||
|
EOF
|
||||||
|
)"
|
||||||
|
export FZF_CTRL_R_OPTS
|
||||||
|
|
||||||
|
# Theme tokyonight
|
||||||
|
FZF_DEFAULT_OPTS="${FZF_DEFAULT_OPTS} \
|
||||||
|
--color=bg+:#283457 \
|
||||||
|
--color=bg:#16161e \
|
||||||
|
--color=border:#27a1b9 \
|
||||||
|
--color=fg:#c0caf5 \
|
||||||
|
--color=gutter:#16161e \
|
||||||
|
--color=header:#ff9e64 \
|
||||||
|
--color=hl+:#2ac3de \
|
||||||
|
--color=hl:#2ac3de \
|
||||||
|
--color=info:#545c7e \
|
||||||
|
--color=marker:#ff007c \
|
||||||
|
--color=pointer:#ff007c \
|
||||||
|
--color=prompt:#2ac3de \
|
||||||
|
--color=query:#c0caf5:regular \
|
||||||
|
--color=scrollbar:#27a1b9 \
|
||||||
|
--color=separator:#ff9e64 \
|
||||||
|
--color=spinner:#ff007c \
|
||||||
|
"
|
||||||
|
export FZF_DEFAULT_OPTS
|
||||||
|
|
||||||
|
fi
|
||||||
@@ -0,0 +1,215 @@
|
|||||||
|
#!/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
|
||||||
@@ -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,13 +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
|
||||||
# y compris quand seules les données (.chezmoidata) utilisées par ses templates changent.
|
# (~/.config/mise/conf.d/<toolbox>.toml) à partir de .chezmoidata/tools.yaml
|
||||||
# hash: {{ includeTemplate "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
|
||||||
|
|||||||
Reference in new issue
Block a user