ohmyzsh/plugins/gpg-agent/gpg-agent.plugin.zsh

39 lines
991 B
Bash

# Based on ssh-agent code
local GPG_ENV=$HOME/.gnupg/gpg-agent.env
function start_agent {
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
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;
fi
export GPG_AGENT_INFO
if [ -n "${GPG_AGENT_HANDLE_SSH}" ] ; then
export SSH_AUTH_SOCK
export SSH_AGENT_PID
fi
GPG_TTY=$(tty)
export GPG_TTY