]> git.pld-linux.org Git - packages/gnupg2.git/commitdiff
Check if /proc/pid/exe is symlink to /usr/bin/gpg-agent. That way we are 100% sure...
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Mon, 1 Aug 2016 15:17:07 +0000 (17:17 +0200)
committerArkadiusz Miśkiewicz <arekm@maven.pl>
Mon, 1 Aug 2016 15:17:07 +0000 (17:17 +0200)
gnupg-agent.sh

index 1b3fa5a9c08719b44addcd9397ac368820ffbb4c..68ec6f4260cd5d4607e35638f15a02e709bd2229 100644 (file)
@@ -1,28 +1,30 @@
 #!/bin/sh
 
 if [ -r "${HOME}/.gnupg/gpg.conf" ]; then
-    CFG="${HOME}/.gnupg/gpg.conf"
+       CFG="${HOME}/.gnupg/gpg.conf"
 else
-    CFG="${HOME}/.gnupg/options"
+       CFG="${HOME}/.gnupg/options"
 fi
 
 seahorse=no
 if [ -r "${HOME}/.gnupg/gpg-agent.conf" ]; then
-    grep -qE "^[[:blank:]]*pinentry-program[[:blank:]]*.*seahorse-agent" "${HOME}/.gnupg/gpg-agent.conf" && seahorse=yes
+       grep -qE "^[[:blank:]]*pinentry-program[[:blank:]]*.*seahorse-agent" "${HOME}/.gnupg/gpg-agent.conf" && seahorse=yes
 fi
 
 if grep -q "^[[:blank:]]*use-agent" ${CFG} 2>/dev/null; then
-    if [ -f "${HOME}/.gnupg/GPG_AGENT_INFO" ] && pid="$(cut -d: -f2 $HOME/.gnupg/GPG_AGENT_INFO)" && [ -n "$pid" ] && kill -0 "$pid"  2>/dev/null; then
-       export GPG_AGENT_INFO="$(cat ${HOME}/.gnupg/GPG_AGENT_INFO)"
-    else
-       if [ "$seahorse" = "no" ]; then
-           eval "$(gpg-agent --daemon)"
+       if [ -f "${HOME}/.gnupg/GPG_AGENT_INFO" ] && \
+                       pid="$(cut -d: -f2 $HOME/.gnupg/GPG_AGENT_INFO)" && \
+                       [ "$(resolvesymlink "/proc/$pid/exe")" = "/usr/bin/gpg-agent" ]; then
+               export GPG_AGENT_INFO="$(cat ${HOME}/.gnupg/GPG_AGENT_INFO)"
        else
-           eval "$(seahorse-agent --variables)"
+               if [ "$seahorse" = "no" ]; then
+                       eval "$(gpg-agent --daemon)"
+               else
+                       eval "$(seahorse-agent --variables)"
+               fi
+               echo $GPG_AGENT_INFO > ~/.gnupg/GPG_AGENT_INFO
+               export GPG_AGENT_INFO
        fi
-       echo $GPG_AGENT_INFO > ~/.gnupg/GPG_AGENT_INFO
-       export GPG_AGENT_INFO
-    fi
 fi
 unset CFG
 unset pid
This page took 0.193521 seconds and 4 git commands to generate.