function __agent_is_started -d "check if ssh agent is already started" if begin; test -f $SSH_ENV; and test -z "$SSH_AGENT_PID"; end source $SSH_ENV > /dev/null end if test -z "$SSH_AGENT_PID" return 1 end ps -p $SSH_AGENT_PID > /dev/null return $status end function __agent_start -d "start a new ssh agent" secure-agent daemon > $SSH_ENV chmod 600 $SSH_ENV source $SSH_ENV > /dev/null true end function fish_ssh_agent --description "start ssh-agent if not started yet, or uses already started ssh-agent." if test -z "$SSH_ENV" set -xg SSH_ENV $HOME/.ssh/environment end if not __agent_is_started __agent_start end end fish_ssh_agent