+function _start_gpg_agent () {
+ if ! which gpg-agent >&/dev/null; then
+ # gpg-agent is not present.
+ return
+ fi
+
+ if gpg-connect-agent /bye >&/dev/null; then
+ # gpg-agent is already running.
+ if [[ -f "${HOME}/.gpg-agent-info" ]]; then
+ . "${HOME}/.gpg-agent-info"
+ export GPG_AGENT_INFO
+ fi
+ else
+ # gpg-agent is not running yet.
+ eval $(gpg-agent --daemon --write-env-file "${HOME}/.gpg-agent-info")
+ fi
+
+ GPG_TTY=$(tty)
+ export GPG_TTY
+}
+