diff --git a/bin/ssh b/bin/ssh index b04422a..01f54aa 100644 --- a/bin/ssh +++ b/bin/ssh @@ -2,14 +2,27 @@ SSH_ENV="$HOME/.ssh/agent-environment" function dssh { - echo "Initialising new SSH agent..." - /usr/bin/ssh-agent | sed 's/^echo/#echo/' >"$SSH_ENV" - echo succeeded - chmod 600 "$SSH_ENV" - . "$SSH_ENV" >/dev/null - /usr/bin/ssh-add; + ADD_AGENT=0 - ssh-add ~/.ssh/gitea_ssh + if [ -f "$SSH_ENV" ]; then + . "$SSH_ENV" >/dev/null + ps -ef | grep $SSH_AGENT_PID | grep ssh-agent$ >/dev/null || { + ADD_AGENT=1 + } + else + ADD_AGENT=1 + fi + + if [ $ADD_AGENT -eq 1 ]; then + echo "Initialising new SSH agent..." + /usr/bin/ssh-agent | sed 's/^echo/#echo/' >"$SSH_ENV" + echo succeeded + chmod 600 "$SSH_ENV" + . "$SSH_ENV" >/dev/null + /usr/bin/ssh-add ~/.ssh/gitea_ssh + else + echo "No agent necessary" + fi } if [ -f "$SSH_ENV" ]; then