diff options
| author | Heiko Reese <mail@heiko-reese.de> | 2013-02-21 02:46:20 +0100 | 
|---|---|---|
| committer | Heiko Reese <mail@heiko-reese.de> | 2013-02-21 02:46:20 +0100 | 
| commit | 014ed1f0e5c85a10ab7538160e2d3421ab3dbf7e (patch) | |
| tree | cce342a53c3501fe1f675fb69632921e54b2f0ed /plugins/gpg-agent | |
| parent | fce68bbba0be99cfd49f9e46572b2d12d0a86d45 (diff) | |
| download | zsh-014ed1f0e5c85a10ab7538160e2d3421ab3dbf7e.tar.gz zsh-014ed1f0e5c85a10ab7538160e2d3421ab3dbf7e.tar.bz2 zsh-014ed1f0e5c85a10ab7538160e2d3421ab3dbf7e.zip | |
Disable ssh-agent support if another ssh-agent is already running.
Diffstat (limited to 'plugins/gpg-agent')
| -rw-r--r-- | plugins/gpg-agent/gpg-agent.plugin.zsh | 35 | 
1 files changed, 20 insertions, 15 deletions
| diff --git a/plugins/gpg-agent/gpg-agent.plugin.zsh b/plugins/gpg-agent/gpg-agent.plugin.zsh index 8cc71fd57..63c433413 100644 --- a/plugins/gpg-agent/gpg-agent.plugin.zsh +++ b/plugins/gpg-agent/gpg-agent.plugin.zsh @@ -1,26 +1,31 @@ -# Based on ssh-agent code -  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 +function start_agent_nossh { +    eval $(/usr/bin/env gpg-agent --daemon --write-env-file ${GPG_ENV}) > /dev/null +    export GPG_AGENT_INFO +} + +function start_agent_withssh { +    eval $(/usr/bin/env gpg-agent --daemon --enable-ssh-support --write-env-file ${GPG_ENV}) > /dev/null +    export GPG_AGENT_INFO +    export SSH_AUTH_SOCK +    export SSH_AGENT_PID  } -# Source GPG agent settings, if applicable +# make sure all created files are u=rw only +umask 177 + +# source settings of old agent, if applicable  if [ -f "${GPG_ENV}" ]; then    . ${GPG_ENV} > /dev/null -  ps -ef | grep ${SSH_AGENT_PID} | grep gpg-agent > /dev/null || { -    start_agent; -  } -else -  start_agent;  fi -export GPG_AGENT_INFO -export SSH_AUTH_SOCK -export SSH_AGENT_PID +# check for existing ssh-agent +if ssh-add -l > /dev/null 2> /dev/null; then +    start_agent_nossh; +else +    start_agent_withssh; +fi  GPG_TTY=$(tty)  export GPG_TTY | 
