aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/wsl/gpg.sh
diff options
context:
space:
mode:
authorToby Vincent <tobyv13@gmail.com>2022-03-15 17:48:21 -0500
committerToby Vincent <tobyv13@gmail.com>2022-03-15 17:48:21 -0500
commitc54272dc4591d2099e198a7f95421f7b223bc142 (patch)
tree22f0a1c9092b393e95a2809fff8b2dd5e048958d /wsl/gpg.sh
parent98e7a872dfb3e1d107140e8aaaed111deff5fa34 (diff)
feat: functionized script
Diffstat (limited to 'wsl/gpg.sh')
-rwxr-xr-xwsl/gpg.sh67
1 files changed, 22 insertions, 45 deletions
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