install.fairie/home/.chezmoiscripts/universal/run_onchange_after_08-git-hooks.tmpl

31 lines
1.1 KiB
Cheetah
Raw Normal View History

{{- if (eq .host.distro.family "linux") -}}
#!/usr/bin/env bash
{{ includeTemplate "universal/profile" }}
{{ includeTemplate "universal/logg" }}
{{ $gitHooks := (output "find" (joinPath .chezmoi.homeDir ".local" "src" "shared-common" "common" ".config" "husky") "-mindepth" "1" "-maxdepth" "1" "-type" "f") -}}
{{- range $gitHook := splitList "\n" $gitHooks -}}
{{- if ne $gitHook "" -}}
# {{ $gitHook }} hash: {{ include $gitHook | sha256sum }}
{{- end -}}
{{- end }}
### Ensure git hooks directory exists
logg info 'Ensuring git hooks directory exists'
mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/git/template/hooks"
### Ensure git hooks are executable
logg info 'Ensuring git hooks are up-to-date'
find "$HOME/.local/src/shared-common/common/.config/husky" -mindepth 1 -maxdepth 1 -type f | while read HOOK; do
cp "$HOOK" "${XDG_CONFIG_HOME:-$HOME/.config}/git/template/hooks"
done
### Make git hooks executable
if [ -d "${XDG_CONFIG_HOME:-$HOME/.config}/git/template/hooks" ]; then
logg info 'Ensuring git hooks are executable'
chmod +x "${XDG_CONFIG_HOME:-$HOME/.config}/git/template/hooks/"*
fi
{{ end -}}