X-Git-Url: https://git.sev.monster/~sev/dotfiles.git/blobdiff_plain/d9cf4c48aad6c194f53e9d475bf80d4fa6fcb8df..a7e41770d835323fdf6e74005722473d4cfc446e:/base/.zprofile diff --git a/base/.zprofile b/base/.zprofile index 648cf55..f611b98 100644 --- a/base/.zprofile +++ b/base/.zprofile @@ -44,13 +44,8 @@ function _sev_zcleanup { } } # reset GNUPGHOME if we removed our own dir - if [[ $GNUPGHOME =~ '/.ssh_forward/\d+/*$' && ! -e $GNUPGHOME ]] { - x=$GNUPGHOME - [[ -o GLOB_ASSIGN ]]; y=$? - setopt GLOB_ASSIGN - GNUPGHOME=$GNUPGHOME/../..(:a) - (( y != 0 )) && unsetopt GLOB_ASSIGN - } + if [[ $GNUPGHOME =~ '/.ssh_forward/\d+/*$' && ! -e $GNUPGHOME ]] + GNUPGHOME=${GNUPGHOME%$MATCH} } ## tmp @@ -290,33 +285,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