summaryrefslogtreecommitdiffstatshomepage
path: root/wsl/.local
diff options
context:
space:
mode:
Diffstat (limited to 'wsl/.local')
-rwxr-xr-xwsl/.local/bin/socket-relay.sh95
-rw-r--r--wsl/.local/share/zsh-wsl/zsh-wsl.plugin.zsh26
2 files changed, 69 insertions, 52 deletions
diff --git a/wsl/.local/bin/socket-relay.sh b/wsl/.local/bin/socket-relay.sh
index a2391a5..4859b37 100755
--- a/wsl/.local/bin/socket-relay.sh
+++ b/wsl/.local/bin/socket-relay.sh
@@ -1,5 +1,5 @@
#!/usr/bin/env sh
-set -euo pipefail
+set -e
OPTS=$(getopt -o hvs:a:x: --long help,verbose,sock:,args:,exec:,ssh,gpg,gpg-extra,discord -n 'javawrap' -- "$@")
@@ -32,11 +32,14 @@ help() {
--gpg-extra Relay the gpg agent's extra socket
ARGS:
+ status
+ Check the status of the socat process
start (default)
Start the socat process
-
stop
Kill the socat process
+ restart
+ Same as $($SCRIPT stop && $SCRIPT start)
EOF
}
@@ -63,9 +66,9 @@ err() {
}
need() {
- for cmd in "$@"; do
- if ! command -v $cmd >/dev/null 2>&1; then
- err "need $cmd (command not found)"
+ for need_cmd in "$@"; do
+ if ! command -v "$need_cmd" >/dev/null 2>&1; then
+ err "need $need_cmd (command not found)"
fi
done
}
@@ -73,16 +76,23 @@ need() {
start() {
say_verbose "SOCKET: $sock"
say_verbose "ARGS: $args"
- say_verbose "EXEC: $cmd"
+ say_verbose "EXEC: $exec"
- if $gpg; then
- say_verbose "gpg-connect-agent KILLAGENT"
- gpg-connect-agent.exe KILLAGENT /bye >"$v_stdout" 2>"$v_stderr"
+ if [ -z "$exec" ]; then
+ err "No EXEC provided. Must supply either one of the preset options, or provide an explicit value with --exec"
fi
- if ! ss -a | grep -q "$sock"; then
+ if [ -z "$sock" ]; then
+ err "No socket provided."
+ fi
+
+ if ! command -v "$relay" >/dev/null 2>&1; then
+ err "$relay is not executable."
+ fi
+
+ if ! pgrep -fa "socat.*$sock.*$relay,"; then
rm -rf "$sock"
- (setsid nohup socat UNIX-LISTEN:"${sock},${args}" EXEC:"$cmd" >/dev/null 2>&1 &)
+ (setsid nohup socat UNIX-LISTEN:"${sock},${args}" EXEC:"$exec" >/dev/null 2>&1 &)
fi
if $gpg; then
@@ -91,21 +101,36 @@ start() {
}
stop() {
+ if [ -z "$sock" ]; then
+ err "No socket provided."
+ fi
+
+ if [ -z "$relay" ]; then
+ err "No exec provided"
+ fi
+
if $gpg; then
gpg-connect-agent.exe KILLAGENT /bye >"$v_stdout" 2>"$v_stderr"
fi
pkill -fe "socat.*$sock.*$relay" >"$v_stdout"
+
+ rm -rf "$sock"
}
-check() {
- pgrep -fa "socat.*$sock.*$relay"
+status() {
+ proc="socat.*${sock:-}.*${relay:-}"
+
+ if ! pgrep -fa "$proc"; then
+ say_err "No process found"
+ return 1
+ fi
}
quiet=false
verbose=false
sock=""
-cmd=""
+exec=""
gpg=false
ssh=false
extra=false
@@ -139,7 +164,7 @@ while test $# -gt 0; do
shift
;;
-x | --exec)
- cmd=$2
+ exec=$2
shift
shift
;;
@@ -177,56 +202,38 @@ need socat
if $ssh; then
need "$PAGEANT"
- sock="${sock:-$SSH_AUTH_SOCK}"
- args="${args:-fork}"
- cmd="${cmd:-$PAGEANT}"
+ sock="${ssh_sock:-$SSH_AUTH_SOCK}"
+ args="${ssh_args:-fork}"
+ exec="${ssh_exec:-$PAGEANT}"
elif $gpg; then
need "$PAGEANT"
need "gpg-connect-agent.exe"
- sock="${sock:-$GPG_AGENT_SOCK}"
- args="${args:-fork}"
- cmd="${cmd:-$PAGEANT --gpg $(basename "$sock")}"
- if $extra; then
- sock=sock+".extra"
- fi
+ config_path="C\:/Users/$USER/AppData/Local/gnupg"
+ sock="${gpg_sock:-$GPG_AGENT_SOCK}$(if $extra; then echo ".extra"; fi)"
+ args="${gpg_args:-fork}"
+ exec="${gpg_exec:-$PAGEANT --gpgConfigBasepath ${config_path} --gpg $(basename "$sock")}"
elif $discord; then
need "$NPIPE"
sock="${DISCORD_IPC_SOCK:-/var/run/discord-ipc-0}"
- cmd="$NPIPE -ep -s //./pipe/$(basename "$sock")"
+ exec="$NPIPE -ep -s //./pipe/$(basename "$sock")"
args="fork,group=discord,umask=007"
fi
-relay="$(echo "$cmd" | head -n1 | awk '{print $1;}')"
-
-if [ -z "$cmd" ]; then
- err "No EXEC provided. Must supply either one of the preset options, or provide an explicit value with --exec"
-fi
-
-if [ -z "$sock" ]; then
- err "No socket provided."
-fi
-
-if ! [ -x "$relay" ]; then
- err "WARNING: $relay is not executable."
-fi
+relay="$(echo "$exec" | head -n1 | awk '{print $1;}')"
case ${1:-'start'} in
-check)
- shift
- check
+status)
+ status
;;
start)
- shift
start
;;
stop)
- shift
stop
;;
restart)
- shift
stop
start
;;
diff --git a/wsl/.local/share/zsh-wsl/zsh-wsl.plugin.zsh b/wsl/.local/share/zsh-wsl/zsh-wsl.plugin.zsh
index 1fd901d..a139535 100644
--- a/wsl/.local/share/zsh-wsl/zsh-wsl.plugin.zsh
+++ b/wsl/.local/share/zsh-wsl/zsh-wsl.plugin.zsh
@@ -110,13 +110,18 @@ _start-pageant() {
# Reload
gpg-reset() {
- gpg-connect-agent.exe KILLAGENT /bye &>/dev/null
-
- rm -rf "$GPG_AGENT_SOCK"
- rm -rf "$GPG_AGENT_SOCK".extra
- pkill -f 'socat.*wsl2-ssh-pageant.exe'
- gpg-connect-agent.exe /bye &>/dev/null
- gpg-init
+ # gpg-connect-agent.exe KILLAGENT /bye &>/dev/null
+ #
+ # rm -rf "$GPG_AGENT_SOCK"
+ # rm -rf "$GPG_AGENT_SOCK".extra
+ # pkill -f 'socat.*wsl2-ssh-pageant.exe'
+ # gpg-connect-agent.exe /bye &>/dev/null
+ # gpg-init
+
+ socket-relay.sh stop --ssh
+ socket-relay.sh restart --gpg
+ socket-relay.sh --gpg-extra
+ socket-relay.sh --ssh
}
# Relearn card serial number
@@ -124,6 +129,11 @@ gpg-learn() {
gpg-connect-agent.exe "scd serialno" "learn --force" /bye
}
-gpg-init
+# gpg-reset
+
+# socket-relay.sh stop --gpg
+socket-relay.sh --gpg
+socket-relay.sh --gpg-extra
+socket-relay.sh --ssh
unset -f _start-pageant