From 657e8a16f4c488e58b7e28c7761814816c4ec585 Mon Sep 17 00:00:00 2001 From: Sorin Ionescu Date: Mon, 6 Oct 2014 16:42:22 -0400 Subject: [PATCH] [Fix #689] Use GPG_AGENT_INFO instead of GPG_AGENT_PID GPG_AGENT_PID may not be defined. Also, source gpg-agent.env before checking the PID. --- modules/gpg/init.zsh | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/modules/gpg/init.zsh b/modules/gpg/init.zsh index cb78495..a99f7cb 100644 --- a/modules/gpg/init.zsh +++ b/modules/gpg/init.zsh @@ -15,11 +15,14 @@ _gpg_agent_conf="$HOME/.gnupg/gpg-agent.conf" _gpg_agent_env="${TMPDIR:-/tmp}/gpg-agent.env" # Start gpg-agent if not started. -if ! ps -U "$USER" -o pid,ucomm | grep -q -- "${GPG_AGENT_PID:--1} gpg-agent"; then - eval "$(gpg-agent --daemon | tee "$_gpg_agent_env")" -else +if [[ -z "$GPG_AGENT_INFO" ]]; then # Export environment variables. source "$_gpg_agent_env" 2> /dev/null + + # Start gpg-agent if not started. + if ! ps -U "$USER" -o pid,ucomm | grep -q -- "${${${(s.:.)GPG_AGENT_INFO}[2]}:--1} gpg-agent"; then + eval "$(gpg-agent --daemon | tee "$_gpg_agent_env")" + fi fi # Inform gpg-agent of the current TTY for user prompts.