| 4 |
- |
1 |
#!/bin/sh
|
|
|
2 |
|
|
|
3 |
GPG_AGENT=/usr/bin/gpg-agent
|
|
|
4 |
## Run gpg-agent only if not already running, and available
|
|
|
5 |
if [ -x "${GPG_AGENT}" ] ; then
|
|
|
6 |
|
|
|
7 |
# check validity of GPG_SOCKET (in case of session crash)
|
|
|
8 |
GPG_AGENT_INFO_FILE=${HOME}/.gpg-agent-info
|
|
|
9 |
if [ -f "${GPG_AGENT_INFO_FILE}" ]; then
|
|
|
10 |
GPG_AGENT_PID=`cat ${GPG_AGENT_INFO_FILE} | cut -f2 -d:`
|
|
|
11 |
GPG_PID_NAME=`ps -p ${GPG_AGENT_PID} -o comm=`
|
|
|
12 |
if [ ! "x${GPG_PID_NAME}" = "xgpg-agent" ]; then
|
|
|
13 |
rm -f "${GPG_AGENT_INFO_FILE}" 2>&1 >/dev/null
|
|
|
14 |
else
|
|
|
15 |
GPG_SOCKET=`cat "${GPG_AGENT_INFO_FILE}" | cut -f1 -d: | cut -f2 -d=`
|
|
|
16 |
if ! test -S "${GPG_SOCKET}" -a -O "${GPG_SOCKET}" ; then
|
|
|
17 |
rm -f "${GPG_AGENT_INFO_FILE}" 2>&1 >/dev/null
|
|
|
18 |
fi
|
|
|
19 |
fi
|
|
|
20 |
unset GPG_AGENT_PID GPG_SOCKET GPG_PID_NAME
|
|
|
21 |
fi
|
|
|
22 |
|
|
|
23 |
if [ -f "${GPG_AGENT_INFO_FILE}" ]; then
|
|
|
24 |
eval "$(cat \"${GPG_AGENT_INFO_FILE}\")"
|
|
|
25 |
eval "$(cut -d= -f 1 < \"${GPG_AGENT_INFO_FILE}\" | xargs echo export)"
|
|
|
26 |
export GPG_TTY=$(tty)
|
|
|
27 |
else
|
|
|
28 |
eval "$(${GPG_AGENT} -s --daemon --write-env-file ${GPG_OPTIONS})"
|
|
|
29 |
fi
|
|
|
30 |
|
|
|
31 |
fi
|