foxshell/fn/-z4h-start-ssh-agent
2025-07-04 11:48:40 -05:00

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
}