From d42865fe516bac06a113edb559ad179552c793d1 Mon Sep 17 00:00:00 2001 From: sev Date: Sat, 19 Mar 2022 22:48:01 -0500 Subject: [PATCH] fix gpg agent setup and pretty printing only setup if not forwarded, pointless otherwise minimize complexity with pretty printing info, don't /echo if forwarded --- base/.zprofile | 48 +++++++++++++++++++++++++++--------------------- 1 file changed, 27 insertions(+), 21 deletions(-) diff --git a/base/.zprofile b/base/.zprofile index 648cf55..0d8a1a7 100644 --- a/base/.zprofile +++ b/base/.zprofile @@ -290,33 +290,39 @@ if [[ -v commands[gpg-connect-agent] && ( ! -v _sev_setup_gpgagent || if {$p} { print -nP '%F{blue}>>>%f GPG: ' if [[ -v _sev_setup_gpg_forward ]] { - a=agent - print -nP '%F{yellow}Forwarded%f ' - } else { a=Agent } - print -nP '%F{green}' + print -nP '%F{yellow}Forwarded agent ' + } else { + print -nP '%F{green}Agent ' + } } gpg-connect-agent /bye >/dev/null 2>&1 if [[ $? -ne 0 ]] { - $p && print -P '%F{red}$a communication error' + $p && print -P '%F{red}communication error' } else { - if [[ ${+GPG_TTY} -eq 0 && -o interactive ]] - export GPG_TTY=$(tty) - if [[ ( -v DISPLAY || -v WAYLAND_DISPLAY ) && - ${PINENTRY_USER_DATA/USE_TTY=0} == $PINENTRY_USER_DATA ]] - export PINENTRY_USER_DATA=USE_TTY=$(( - ${+DISPLAY} + ${+WAYLAND_DISPLAY} == 0)) - # XXX: don't know if gpg-agent supports comments after directives - # XXX: path could have # - sed -Ei 's#^([[:space:]]*pinentry-program[[:space:]]).*$#\1'${commands[pinentry]:-/dev/null}'#' \ - ${GNUPGHOME:-~/.gnupg}/gpg-agent.conf - # XXX: could probably check for changes before doing this to save perf - gpg-connect-agent RELOADAGENT UPDATESTARTUPTTY /bye >/dev/null 2>&1 - $p && gpg-connect-agent /subst /serverpid \ - "/echo $a pid \${get serverpid} on $GPG_TTY" /bye + if [[ ! -v _sev_setup_gpg_forward ]] { + if [[ ${+GPG_TTY} -eq 0 && -o interactive ]] + export GPG_TTY=$(tty) + if [[ ( -v DISPLAY || -v WAYLAND_DISPLAY ) && + ${PINENTRY_USER_DATA/USE_TTY=0} == $PINENTRY_USER_DATA ]] + export PINENTRY_USER_DATA=USE_TTY=$(( + ${+DISPLAY} + ${+WAYLAND_DISPLAY} == 0)) + # XXX: don't know if gpg-agent supports comments after directives + # XXX: path could have # + sed -Ei 's#^([[:space:]]*pinentry-program[[:space:]]).*$#\1'${commands[pinentry]:-/dev/null}'#' \ + ${GNUPGHOME:-~/.gnupg}/gpg-agent.conf + # XXX: could check for changes before doing this to save perf + gpg-connect-agent RELOADAGENT UPDATESTARTUPTTY /bye >/dev/null 2>&1 + if {$p} { + gpg-connect-agent /subst /serverpid \ + "/echo pid \${get serverpid} on $GPG_TTY" /bye 2>/dev/null + print -nP '%f' + } + } elif {$p} { + print -P '%f' + } export _sev_setup_gpgagent= } - $p && print -nP '%f' - unset p a + unset p } ### ssh agent -- 2.47.0