Remove stale agent socket.
[profile.git] / .profile.d / ssh.bashrc
1 # $Id$
2
3 SOCKET=~/.ssh/agent
4
5 if [ ! -z "$SSH_CLIENT" ]; then
6   # Set display if we aren't already forwarding X11
7   if [ "$DISPLAY" = "" ]; then
8     export DISPLAY="$(echo $SSH_CLIENT | cut -s -d ' ' -f 1):0"
9   fi
10 fi
11
12 # Try to hook up with already running ssh-agent.
13 if [ $UID -gt 0 ]; then
14   # Not all OSes support ``ps -wu''.
15   RUNNING_AGENT="$(ps waux | grep -- ^$USER\ .\*ssh-agent\ -a\ .\*\ -s | grep -v grep | awk '{ print $2 }' | head -n 1)"
16   if [ -z "$SSH_AGENT_PID" -o ! "$SSH_AGENT_PID" = "$RUNNING_AGENT" ]; then
17     export SSH_AGENT_PID="$RUNNING_AGENT"
18     if [ "$SSH_AGENT_PID" = "" ]; then
19       unset SSH_AGENT_PID
20       unset SSH_AUTH_SOCK
21       # Start ssh-agent up then.
22       rm -f "$SOCKET"
23       eval $(/usr/bin/ssh-agent -a "$SOCKET" -s)
24       trap "kill $SSH_AGENT_PID" 0
25       ssh-add
26     else
27       export SSH_AUTH_SOCK="$SOCKET"
28     fi
29   fi
30   unset RUNNING_AGENT
31 fi
32
33 unset SOCKET