80f051d
#!/bin/sh
80f051d
1c19463
GPG_AGENT=/usr/bin/gpg-agent
80f051d
## Run gpg-agent only if not already running, and available
bf741de
if [ -x "${GPG_AGENT}" ] ; then
92b707f
92b707f
  # check validity of GPG_SOCKET (in case of session crash)
de49e57
  GPG_AGENT_INFO_FILE=${HOME}/.gpg-agent-info
de49e57
  if [ -f "${GPG_AGENT_INFO_FILE}" ]; then
bf741de
    GPG_AGENT_PID=`cat ${GPG_AGENT_INFO_FILE} | cut -f2 -d:`
bf741de
    GPG_PID_NAME=`ps -p ${GPG_AGENT_PID} -o comm=`
bf741de
    if [ ! "x${GPG_PID_NAME}" = "xgpg-agent" ]; then
de49e57
      rm -f "${GPG_AGENT_INFO_FILE}" 2>&1 >/dev/null
bf741de
    else
bf741de
       GPG_SOCKET=`cat "${GPG_AGENT_INFO_FILE}" | cut -f1 -d:`
bf741de
       if ! test -S "${GPG_SOCKET}" -a -O "${GPG_SOCKET}" ; then
bf741de
         rm -f "${GPG_AGENT_INFO_FILE}" 2>&1 >/dev/null
bf741de
       fi
92b707f
    fi
bf741de
    unset GPG_AGENT_PID GPG_SOCKET GPG_PID_NAME
92b707f
  fi
92b707f
de49e57
  if [ -f "${GPG_AGENT_INFO_FILE}" ]; then
de49e57
    export GPG_AGENT_INFO=$(cat "${GPG_AGENT_INFO_FILE}")
80f051d
    export GPG_TTY=$(tty)
80f051d
  else
80f051d
    eval "$(${GPG_AGENT} -s --daemon ${GPG_OPTIONS})"
c78ffec
    echo ${GPG_AGENT_INFO} > "${HOME}/.gpg-agent-info"
80f051d
  fi
92b707f
80f051d
fi