Compare commits
19
Commits
3a8dca1fcb
..
dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4c7b637e97 | ||
|
|
d0327a3b70 | ||
|
|
88d13bf36c | ||
|
|
d094dced64 | ||
|
|
3645b0c3d0 | ||
|
|
5c46b38455 | ||
|
|
12b79dc835 | ||
|
|
ebf3fec9d4 | ||
|
|
3a2687474e | ||
|
|
ead4da0581 | ||
|
|
a787c7ed51 | ||
|
|
e17a18d7c5 | ||
|
|
db34347d55 | ||
|
|
08dd7060b6 | ||
|
|
2500668363 | ||
|
|
55af3f3539 | ||
|
|
fafcf283a8 | ||
|
|
1c817a92a6 | ||
|
|
17e579e16c |
No files matched your search
+13
-1
@@ -10,6 +10,8 @@ hosts:
|
|||||||
xavier:
|
xavier:
|
||||||
toolboxes:
|
toolboxes:
|
||||||
- terminal
|
- terminal
|
||||||
|
- dev-git
|
||||||
|
- dev-gitea
|
||||||
- dev-tools
|
- dev-tools
|
||||||
- dev-languages
|
- dev-languages
|
||||||
- ai
|
- ai
|
||||||
@@ -28,8 +30,11 @@ 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
|
||||||
@@ -40,10 +45,13 @@ 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
|
||||||
@@ -51,7 +59,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:
|
||||||
@@ -61,10 +68,14 @@ 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:
|
||||||
@@ -77,4 +88,5 @@ hosts:
|
|||||||
xavier:
|
xavier:
|
||||||
toolboxes:
|
toolboxes:
|
||||||
- terminal
|
- terminal
|
||||||
|
- dev-git
|
||||||
- dev-tools
|
- dev-tools
|
||||||
@@ -21,9 +21,14 @@ tools:
|
|||||||
- jq
|
- jq
|
||||||
- yq
|
- yq
|
||||||
- shellcheck
|
- shellcheck
|
||||||
- lazygit
|
|
||||||
- delta
|
- delta
|
||||||
|
dev-git:
|
||||||
|
- lazygit
|
||||||
|
dev-github:
|
||||||
- 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.15.1"
|
||||||
|
|||||||
@@ -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 }}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
"$schema" = 'https://starship.rs/config-schema.json'
|
"$schema" = 'https://starship.rs/config-schema.json'
|
||||||
|
|
||||||
format = """
|
format = """
|
||||||
|
[ ](fg:#769ff0)\
|
||||||
$directory\
|
$directory\
|
||||||
[](fg:#769ff0 bg:#394260)\
|
[](bg:#394260 fg:#769ff0)\
|
||||||
$git_branch\
|
$git_branch\
|
||||||
$git_commit\
|
$git_commit\
|
||||||
$git_status\
|
$git_status\
|
||||||
$git_state\
|
$git_state\
|
||||||
$direnv\
|
|
||||||
$mise\
|
$mise\
|
||||||
|
$direnv\
|
||||||
[](fg:#394260 bg:#212736)\
|
[](fg:#394260 bg:#212736)\
|
||||||
$rust\
|
$rust\
|
||||||
$golang\
|
$golang\
|
||||||
@@ -22,18 +23,7 @@ $terraform\
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
right_format = """
|
right_format = """
|
||||||
[](fg:#a3aed2)\
|
[](fg:#a3aed2)$time[](fg:#a3aed2)\
|
||||||
$shell\
|
|
||||||
$username\
|
|
||||||
[](fg:#394260 bg:#a3aed2)\
|
|
||||||
$os\
|
|
||||||
[](bg:#394260 fg:#a3aed2)\
|
|
||||||
$container\
|
|
||||||
$hostname\
|
|
||||||
[ ](fg:#394260)\
|
|
||||||
[](fg:#a3aed2)\
|
|
||||||
$time\
|
|
||||||
[](fg:#a3aed2)\
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
[hostname]
|
[hostname]
|
||||||
@@ -52,7 +42,7 @@ format = '[ $symbol $name ]($style)'
|
|||||||
[os]
|
[os]
|
||||||
disabled = false
|
disabled = false
|
||||||
style = "bg:#394260 fg:#a3aed2"
|
style = "bg:#394260 fg:#a3aed2"
|
||||||
format = "[ $symbol ]($style)"
|
format = "[ $symbol $name ]($style)"
|
||||||
|
|
||||||
[username]
|
[username]
|
||||||
show_always = true
|
show_always = true
|
||||||
@@ -62,42 +52,41 @@ format = '[ $user ]($style)'
|
|||||||
|
|
||||||
[shell]
|
[shell]
|
||||||
disabled = false
|
disabled = false
|
||||||
bash_indicator = ' '
|
bash_indicator = ' bash'
|
||||||
zsh_indicator = ' '
|
zsh_indicator = ' zsh'
|
||||||
fish_indicator = ' '
|
fish_indicator = ' fish'
|
||||||
powershell_indicator = '_'
|
powershell_indicator = '_ Powershell'
|
||||||
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"
|
style = "fg:#769ff0 bg:#394260 bold"
|
||||||
format = '[ $symbol $branch ]($style)'
|
format = '[ $symbol $branch ]($style)'
|
||||||
|
|
||||||
[git_commit]
|
[git_commit]
|
||||||
disabled = false
|
disabled = false
|
||||||
style = "fg:#769ff0 bg:#394260"
|
only_detached = true
|
||||||
tag_disabled = false
|
tag_disabled = false
|
||||||
tag_symbol = ' '
|
tag_symbol = ' '
|
||||||
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"
|
|
||||||
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)'
|
||||||
@@ -109,18 +98,21 @@ 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 = ""
|
||||||
@@ -173,16 +165,14 @@ 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) '
|
||||||
success_symbol = '[ [](fg:#ddffdd)](bg:#ddffdd fg:#00af5f) '
|
vimcmd_symbol = '[[](fg:#007f00) ViM mode [](fg:#007f00)](bg:#007f00) '
|
||||||
error_symbol = '[ [](fg:#ffddff)](bg:#ffddff fg:#f44336) '
|
|
||||||
|
|
||||||
[os.symbols]
|
[os.symbols]
|
||||||
Windows = ""
|
Windows = ""
|
||||||
|
|||||||
@@ -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,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