diff options
Diffstat (limited to 'sh/gpg.sh')
-rwxr-xr-x | sh/gpg.sh | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -11,11 +11,17 @@ export GPG_AGENT_SOCK=$HOME/.gnupg/S.gpg-agent export SOCKETS=("${SSH_AUTH_SOCK}" "${GPG_AGENT_SOCK}" "${GPG_AGENT_SOCK}.extra") function gpg-init() ( + wsl2_ssh_pageant_bin="$HOME/.ssh/wsl2-ssh-pageant.exe" + + if ! test -x "$wsl2_ssh_pageant_bin"; then + echo >&2 "WARNING: $wsl2_ssh_pageant_bin is not executable." + return + fi + for socket in "${SOCKETS[@]}"; do - ss -a | grep -q $socket - if [ $? -ne 0 ]; then + if ss -a | grep -q $socket; then rm -rf $socket - (setsid nohup socat UNIX-LISTEN:$socket,fork EXEC:"$DOTFILES/ssh/wsl2-ssh-pageant.exe $([ $socket != $SSH_AUTH_SOCK ] && echo "--gpg $(basename $socket)")" &>/dev/null &) + (setsid nohup socat UNIX-LISTEN:"$socket,fork" EXEC:"$wsl2_ssh_pageant_bin $([ $socket != $SSH_AUTH_SOCK ] && echo "--gpg $(basename $socket)")" >/dev/null 2>&1 &) fi done ) |