From 7692881d2a61a4ba47eeef5d7827c0d2cb896def Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Cornell=C3=A0?= Date: Thu, 26 Aug 2021 12:14:53 +0200 Subject: [PATCH] feat(ssh-agent): only start ssh-agent once (#5359) Close #5359 Close #7379 Co-authored-by: Will Andrews Co-authored-by: zhangyc --- plugins/ssh-agent/ssh-agent.plugin.zsh | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/plugins/ssh-agent/ssh-agent.plugin.zsh b/plugins/ssh-agent/ssh-agent.plugin.zsh index 9bc2e8a21..acad4e83e 100644 --- a/plugins/ssh-agent/ssh-agent.plugin.zsh +++ b/plugins/ssh-agent/ssh-agent.plugin.zsh @@ -1,5 +1,3 @@ -typeset _agent_forwarding _ssh_env_cache - function _start_agent() { local lifetime zstyle -s :omz:plugins:ssh-agent lifetime lifetime @@ -97,7 +95,23 @@ else _start_agent fi -_add_identities +() { + emulate -L zsh + + command mkdir "$ZSH_CACHE_DIR/ssh-agent.lock" 2>/dev/null || return + + trap " + ret=\$? + + command rm -rf '$ZSH_CACHE_DIR/ssh-agent.lock' + unset _agent_forwarding _ssh_env_cache + unfunction _start_agent _add_identities 2>/dev/null + + return \$ret + " EXIT INT QUIT + + _add_identities +} # tidy up after ourselves unset _agent_forwarding _ssh_env_cache