mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2024-11-25 15:20:08 +00:00
Prevent starting multiple gpg-agents
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.
This commit is contained in:
parent
78dba754d1
commit
711e96b1a2
1 changed files with 17 additions and 9 deletions
|
@ -14,16 +14,24 @@ function start_agent_withssh {
|
||||||
export SSH_AGENT_PID
|
export SSH_AGENT_PID
|
||||||
}
|
}
|
||||||
|
|
||||||
# source settings of old agent, if applicable
|
# check if another agent is running
|
||||||
if [ -f "${GPG_ENV}" ]; then
|
if ! gpg-connect-agent --quiet /bye > /dev/null 2> /dev/null; then
|
||||||
. ${GPG_ENV} > /dev/null
|
# source settings of old agent, if applicable
|
||||||
fi
|
if [ -f "${GPG_ENV}" ]; then
|
||||||
|
. ${GPG_ENV} > /dev/null
|
||||||
|
fi
|
||||||
|
|
||||||
# check for existing ssh-agent
|
# check again if another agent is running using the newly sources settings
|
||||||
if ssh-add -l > /dev/null 2> /dev/null; then
|
if ! gpg-connect-agent --quiet /bye > /dev/null 2> /dev/null; then
|
||||||
start_agent_nossh;
|
# check for existing ssh-agent
|
||||||
else
|
if ssh-add -l > /dev/null 2> /dev/null; then
|
||||||
start_agent_withssh;
|
# ssh-agent running, start gpg-agent without ssh support
|
||||||
|
start_agent_nossh;
|
||||||
|
else
|
||||||
|
# otherwise start gpg-agent with ssh support
|
||||||
|
start_agent_withssh;
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
GPG_TTY=$(tty)
|
GPG_TTY=$(tty)
|
||||||
|
|
Loading…
Reference in a new issue