Add GUI git-askpass so credential prompts work without a TTY
Installs /usr/local/bin/git-askpass (uses zenity or qarma) and sets core.askPass in /etc/gitconfig. Git now pops a GUI dialog for username/ password instead of trying to open /dev/tty, which fails in headless contexts (scripts, Claude Code terminal). Adds zenity to live desktop package lists for both niri and cinnamon profiles. Propagated to: both live ISO builders and the installer postinstall. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -88,10 +88,23 @@ EOF
|
||||
fi
|
||||
chmod 440 "$TARGET/etc/sudoers.d/10-wheel"
|
||||
|
||||
# git: use file-based credential store so push/pull never tries to open /dev/tty
|
||||
# git: GUI askpass so prompts work without a controlling terminal
|
||||
install -d -m 0755 "$TARGET/usr/local/bin"
|
||||
cat > "$TARGET/usr/local/bin/git-askpass" <<'EOF'
|
||||
#!/bin/sh
|
||||
for cmd in zenity qarma; do
|
||||
command -v "$cmd" >/dev/null 2>&1 || continue
|
||||
case "$1" in
|
||||
*[Uu]sername*) exec "$cmd" --entry --title="Git Credentials" --text="$1" ;;
|
||||
*) exec "$cmd" --password --title="Git Credentials" --text="$1" ;;
|
||||
esac
|
||||
done
|
||||
printf '%s' "$1" >&2; read -r answer; printf '%s\n' "$answer"
|
||||
EOF
|
||||
chmod 0755 "$TARGET/usr/local/bin/git-askpass"
|
||||
cat > "$TARGET/etc/gitconfig" <<'EOF'
|
||||
[credential]
|
||||
helper = store
|
||||
[core]
|
||||
askPass = /usr/local/bin/git-askpass
|
||||
EOF
|
||||
|
||||
ok "user '$USERNAME' created and added to: $USER_GROUPS"
|
||||
|
||||
Reference in New Issue
Block a user