If using the gpg-agent with --enable-ssh-support, the SSH_AUTH_SOCK and
SSH_AGENT_PID environment variables need to be exported once sourced
from GPG_ENV. Otherwise, we get no benefit from the persisting these
values to GPG_ENV; subsequent openned terminals don't see the existent
gpg-agent as a process for an SSH daemon.
The GPG_ENV file is sourced before doing the gpg-connect-agent check,
but this file (unlike the SSH_ENV file) doesn't export GPG_AGENT_INFO,
so the check always fails. This results in new gpg-agents continuously
being spawned.
All this commit does is put in the single export to fix the problem.
Don't just overwrite the environment. First check for a running agent (an
x-session might have one running). If no agent is found, source the
environment and check again using those settings. If again no agent is
found, start a new instance.