From c54272dc4591d2099e198a7f95421f7b223bc142 Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Tue, 15 Mar 2022 17:48:21 -0500 Subject: feat: functionized script --- wsl/gpg.sh | 67 +++++++++++++++++++++----------------------------------------- 1 file changed, 22 insertions(+), 45 deletions(-) (limited to 'wsl') diff --git a/wsl/gpg.sh b/wsl/gpg.sh index a4cbcc4..e099de4 100755 --- a/wsl/gpg.sh +++ b/wsl/gpg.sh @@ -7,56 +7,30 @@ # GPG & SSH Socket # Removing Linux Agent sockets and replace it with wsl2-ssh-pageant socket -export SSH_AUTH_SOCK="$HOME/.ssh/agent.sock" -export GPG_AGENT_SOCK="$HOME/.gnupg/S.gpg-agent" - -gpg-init() ( - if ! ss -a | grep -q "$SSH_AUTH_SOCK"; then - rm -f "$SSH_AUTH_SOCK" - wsl2_ssh_pageant_bin="$HOME/.ssh/wsl2-ssh-pageant.exe" - if test -x "$wsl2_ssh_pageant_bin"; then - (setsid nohup socat UNIX-LISTEN:"$SSH_AUTH_SOCK,fork" EXEC:"$wsl2_ssh_pageant_bin" >/dev/null 2>&1 &) - else - echo >&2 "WARNING: $wsl2_ssh_pageant_bin is not executable." - fi - unset wsl2_ssh_pageant_bin - fi +start-pageant() { + local pageant="$HOME/.ssh/wsl2-ssh-pageant.exe" + local sock=$1 + local cmd="${pageant}" - if ! ss -a | grep -q "$GPG_AGENT_SOCK"; then - rm -rf "$GPG_AGENT_SOCK" - wsl2_ssh_pageant_bin="$HOME/.ssh/wsl2-ssh-pageant.exe" - if test -x "$wsl2_ssh_pageant_bin"; then - (setsid nohup socat UNIX-LISTEN:"$GPG_AGENT_SOCK,fork" EXEC:"$wsl2_ssh_pageant_bin --gpg S.gpg-agent" >/dev/null 2>&1 &) - else - echo >&2 "WARNING: $wsl2_ssh_pageant_bin is not executable." - fi - unset wsl2_ssh_pageant_bin + if echo "$sock" | grep -q "gpg"; then + cmd+=" --gpg ${sock}" fi - if ! ss -a | grep -q "${GPG_AGENT_SOCK}.extra"; then - rm -rf "${GPG_AGENT_SOCK}.extra" - wsl2_ssh_pageant_bin="$HOME/.ssh/wsl2-ssh-pageant.exe" - if test -x "$wsl2_ssh_pageant_bin"; then - (setsid nohup socat UNIX-LISTEN:"${GPG_AGENT_SOCK}.extra,fork" EXEC:"$wsl2_ssh_pageant_bin --gpg S.gpg-agent.extra" >/dev/null 2>&1 &) + if ! ss -a | grep -q "$sock"; then + if test -x "$pageant"; then + rm -rf "$sock" + (setsid nohup socat UNIX-LISTEN:"${sock},fork" EXEC:"$cmd" >/dev/null 2>&1 &) else - echo >&2 "WARNING: $wsl2_ssh_pageant_bin is not executable." + echo >&2 "WARNING: $pageant is not executable." fi - unset wsl2_ssh_pageant_bin fi -) +} -start-pageant() { - # TODO: WIP - if ! ss -a | grep -q "${GPG_AGENT_SOCK}.extra"; then - rm -rf "${GPG_AGENT_SOCK}.extra" - wsl2_ssh_pageant_bin="$HOME/.ssh/wsl2-ssh-pageant.exe" - if test -x "$wsl2_ssh_pageant_bin"; then - (setsid nohup socat UNIX-LISTEN:"${GPG_AGENT_SOCK}.extra,fork" EXEC:"$wsl2_ssh_pageant_bin --gpg S.gpg-agent.extra" >/dev/null 2>&1 &) - else - echo >&2 "WARNING: $wsl2_ssh_pageant_bin is not executable." - fi - unset wsl2_ssh_pageant_bin - fi +start-pageants() { + sockets=("$SSH_AUTH_SOCK", "$GPG_AGENT_SOCK", "${GPG_AGENT_SOCK}.extra") + for sock in ${sockets[@]}; do + start-pageant $sock + done } # Reload @@ -64,7 +38,7 @@ gpg-reset() { gpg-connect-agent.exe KILLAGENT /bye &>/dev/null pkill -f 'socat.*wsl2-ssh-pageant.exe' gpg-connect-agent.exe /bye &>/dev/null - gpg-init + start-pageants } # Relearn card serial number @@ -72,4 +46,7 @@ gpg-learn() { gpg-connect-agent.exe "scd serialno" "learn --force" /bye } -gpg-init +export SSH_AUTH_SOCK="$HOME/.ssh/agent.sock" +export GPG_AGENT_SOCK="$HOME/.gnupg/S.gpg-agent" + +start-pageants -- cgit v1.2.3-70-g09d2