From ecfeb2cb14c945ccb8bbec1f41548a2a2a74ce04 Mon Sep 17 00:00:00 2001 From: josevi Date: Tue, 23 Jun 2026 21:27:50 +0200 Subject: [PATCH] chezmoi: usa if en vez de default para el prompt de identidad MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .chezmoi.toml.tmpl | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/.chezmoi.toml.tmpl b/.chezmoi.toml.tmpl index cec042e..33aa939 100644 --- a/.chezmoi.toml.tmpl +++ b/.chezmoi.toml.tmpl @@ -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 }}