25 lines
726 B
Bash
25 lines
726 B
Bash
#!/usr/bin/env zsh
|
|
|
|
[[ -v commands[ssh-agent] ]] || return 0
|
|
|
|
function -z4h-ssh-agent-running() {
|
|
[[ -w $SSH_AUTH_SOCK ]] && builtin kill -0 -- $SSH_AGENT_PID 2>/dev/null
|
|
}
|
|
|
|
{
|
|
-z4h-ssh-agent-running && return
|
|
unset SSH_AGENT_PID SSH_AUTH_SOCK
|
|
|
|
local env_file=$Z4H/stickycache/ssh-agent-$EUID
|
|
[[ -r $env_file ]] && builtin source $env_file >/dev/null && -z4h-ssh-agent-running && return
|
|
|
|
local tmp=$env_file.tmp.$$
|
|
local -a args
|
|
zstyle -a :z4h:ssh-agent: extra-args args
|
|
command ssh-agent -s $args >$tmp || return
|
|
builtin source $tmp >/dev/null || return
|
|
-z4h-ssh-agent-running || return
|
|
zf_mv -f -- $tmp $env_file || return
|
|
} always {
|
|
builtin unfunction -- -z4h-ssh-agent-running
|
|
}
|