GPG_AGENT_HANDLE_SSH option added to specify if gpg-agent must replace ssh-agent or not.

This commit is contained in:
Sébastien HOUZÉ 2013-03-20 16:09:15 +01:00
commit e080999804

View file

@ -3,24 +3,37 @@
local GPG_ENV=$HOME/.gnupg/gpg-agent.env
function start_agent {
/usr/bin/env gpg-agent --daemon --enable-ssh-support --write-env-file ${GPG_ENV} > /dev/null
chmod 600 ${GPG_ENV}
. ${GPG_ENV} > /dev/null
if [ -n "${GPG_AGENT_HANDLE_SSH}" ] ; then
/usr/bin/env gpg-agent --daemon --enable-ssh-support --write-env-file ${GPG_ENV} > /dev/null
chmod 600 ${GPG_ENV}
else
/usr/bin/env gpg-agent --daemon --write-env-file ${GPG_ENV} > /dev/null
chmod 600 ${GPG_ENV}
fi
. ${GPG_ENV} > /dev/null
}
# Source GPG agent settings, if applicable
if [ -f "${GPG_ENV}" ]; then
. ${GPG_ENV} > /dev/null
ps -ef | grep ${SSH_AGENT_PID} | grep gpg-agent > /dev/null || {
start_agent;
}
. ${GPG_ENV} > /dev/null
if [ -n "${GPG_AGENT_HANDLE_SSH}" ] ; then
if [ $(ps -ef | grep ${SSH_AGENT_PID} | grep -c gpg-agent) -eq 0 ] ; then
start_agent;
fi
else
if [ $(ps -ef | grep gpg-agent | grep -c daemon) -eq 0 ] ; then
start_agent;
fi
fi
else
start_agent;
start_agent;
fi
export GPG_AGENT_INFO
export SSH_AUTH_SOCK
export SSH_AGENT_PID
if [ -n "${GPG_AGENT_HANDLE_SSH}" ] ; then
export SSH_AUTH_SOCK
export SSH_AGENT_PID
fi
GPG_TTY=$(tty)
export GPG_TTY