chezmoi: usa if en vez de default para el prompt de identidad

Go evalúa los args de las funciones de forma eager: con
`env | default (promptStringOnce ...)` el prompt se ejecuta siempre,
aunque GIT_NAME/GIT_EMAIL estén definidos, y rompe sin TTY (chroot).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
josevi
2026-06-23 21:27:50 +02:00
co-authored by Claude Opus 4.8
parent c8ea01d6b7
commit ecfeb2cb14
+8 -3
View File
@@ -1,6 +1,11 @@
{{- /* Identidad de git: del entorno (la inyecta setup.sh) o preguntando una vez */ -}}
{{- $name := env "GIT_NAME" | default (promptStringOnce . "name" "Nombre para git") -}}
{{- $email := env "GIT_EMAIL" | default (promptStringOnce . "email" "Email para git") -}}
{{- /* Identidad de git: del entorno (la inyecta setup.sh) o preguntando una vez.
OJO: Go evalúa los args de forma eager, así que NO vale
`env | default (promptStringOnce ...)` (el prompt se ejecutaría siempre y
rompe sin TTY). Con `if` solo se pregunta cuando el env está vacío. */ -}}
{{- $name := env "GIT_NAME" -}}
{{- $email := env "GIT_EMAIL" -}}
{{- if not $name }}{{ $name = promptStringOnce . "name" "Nombre para git" }}{{ end -}}
{{- if not $email }}{{ $email = promptStringOnce . "email" "Email para git" }}{{ end -}}
[data]
name = {{ $name | quote }}
email = {{ $email | quote }}