34 lines
1005 B
Bash
34 lines
1005 B
Bash
|
#!/bin/zsh
|
||
|
|
||
|
z-gpg-agent() {
|
||
|
## don't bother with gpg agent socket if it already set
|
||
|
[ -z "${GPG_AGENT_INFO}" ] || return 0
|
||
|
|
||
|
(( ${+commands[gpg-agent]} )) || return 127
|
||
|
|
||
|
local u
|
||
|
for u in gpg-agent.{service,socket} ; do
|
||
|
z-systemctl-exists --user $u || continue
|
||
|
|
||
|
z-systemctl --user --now enable $u
|
||
|
done
|
||
|
|
||
|
(( ${+commands[gpgconf]} )) || return 127
|
||
|
|
||
|
local agent_sock
|
||
|
agent_sock=$(command gpgconf --list-dirs agent-socket) || return $?
|
||
|
[ -n "${agent_sock}" ] || return 3
|
||
|
export GPG_AGENT_INFO="${agent_sock}:0:1"
|
||
|
|
||
|
## don't bother with ssh agent socket if it already set
|
||
|
[ -z "${SSH_AUTH_SOCK}" ] || return 0
|
||
|
|
||
|
local want_ssh_agent ssh_auth_sock
|
||
|
want_ssh_agent=$(z-gpgconf-getopt gpg-agent enable-ssh-support)
|
||
|
if [ "${want_ssh_agent}" = 1 ] ; then
|
||
|
ssh_auth_sock=$(command gpgconf --list-dirs agent-ssh-socket) || return $?
|
||
|
[ -n "${ssh_auth_sock}" ] || return 5
|
||
|
export SSH_AUTH_SOCK="${ssh_auth_sock}"
|
||
|
fi
|
||
|
}
|