From 5f377ce61be1825bb9b1645a1e67b12f2494b9cf Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Wed, 13 Apr 2022 15:03:18 -0500 Subject: fix: apply fix for gpg4win v4.0.0 --- wsl/.local/bin/wsl-installer.sh | 13 ++- wsl/.local/share/zsh-wsl/zsh-wsl.plugin.zsh | 118 ++++++++++++++-------------- wsl/.ssh/wsl2-ssh-pageant.exe | Bin 3613696 -> 0 bytes 3 files changed, 70 insertions(+), 61 deletions(-) delete mode 100755 wsl/.ssh/wsl2-ssh-pageant.exe diff --git a/wsl/.local/bin/wsl-installer.sh b/wsl/.local/bin/wsl-installer.sh index 04f6b00..44c0fff 100755 --- a/wsl/.local/bin/wsl-installer.sh +++ b/wsl/.local/bin/wsl-installer.sh @@ -24,11 +24,16 @@ for f in "$HOME"/.config/alacritty/*; do mkln.sh "$@" "$f" "${WINHOME}"/.config/alacritty/"$(basename "$f")" done +# install wsl2-ssh-pageant +rm -f "${HOME}"/.ssh/wsl2-ssh-pageant.exe +curl -sL "https://github.com/BlackReloaded/wsl2-ssh-pageant/releases/latest/download/wsl2-ssh-pageant.exe" >"${HOME}"/.ssh/wsl2-ssh-pageant.exe +chmod +x "${HOME}"/.ssh/wsl2-ssh-pageant.exe + # install xclip/xsel -curl -sL "https://raw.githubusercontent.com/Konfekt/win-bash-xclip-xsel/master/clip.sh" >"${HOME}/.local/bin/xclip" -curl -sL "https://raw.githubusercontent.com/Konfekt/win-bash-xclip-xsel/master/clip.sh" >"${HOME}/.local/bin/xsel" -chmod +x "${HOME}/.local/bin/xclip" -chmod +x "${HOME}/.local/bin/xsel" +curl -sL "https://raw.githubusercontent.com/Konfekt/win-bash-xclip-xsel/master/clip.sh" >"${HOME}"/.local/bin/xclip +curl -sL "https://raw.githubusercontent.com/Konfekt/win-bash-xclip-xsel/master/clip.sh" >"${HOME}"/.local/bin/xsel +chmod +x "${HOME}"/.local/bin/xclip +chmod +x "${HOME}"/.local/bin/xsel # https://github.com/wslutilities/wslu command -v wslview &>/dev/null || cat <<-EOF diff --git a/wsl/.local/share/zsh-wsl/zsh-wsl.plugin.zsh b/wsl/.local/share/zsh-wsl/zsh-wsl.plugin.zsh index 8f88e48..82705c6 100644 --- a/wsl/.local/share/zsh-wsl/zsh-wsl.plugin.zsh +++ b/wsl/.local/share/zsh-wsl/zsh-wsl.plugin.zsh @@ -8,7 +8,7 @@ WINHOME="/mnt/c/Users/$USER" mkdir -p /tmp/xdg export DISPLAY=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}'):0 -export VISUAL="code --wait" +export EDITOR="$( command -v code &>/dev/null | echo 'code --wait' || echo $EDITOR )" export BROWSER=wslview export XDG_RUNTIME_DIR=/tmp/xdg export SSH_AUTH_SOCK="$HOME/.ssh/agent.sock" @@ -30,95 +30,99 @@ wt() { wsl_cmd_proxy() { exe="$1" shift # past exe - + cmd=" ${1}" shift # past cmd - + args="" while [[ $# -gt 0 ]]; do case "$1" in - -*) - args+="${1} '${2}' " - shift - shift + -*) + args+="${1} '${2}' " + shift + shift ;; - *) - args+="'${1}'" - shift + *) + args+="'${1}'" + shift ;; esac args+=" " done - + powershell.exe -NoProfile -c 'cd $HOME;' "$exe" "$cmd" "$args" } winget() { wsl_cmd_proxy "winget.exe" "$@"; } scoop() { wsl_cmd_proxy "scoop" "$@"; } alacritty() { wsl_cmd_proxy "alacritty.exe" "$@"; } +pwsh() { alacritty --working-directory "c:\\Users\\${USER}" -e "pwsh.exe $@"; } gpg-init() ( - echo "$SSH_AUTH_SOCK" - echo "$GPG_AGENT_SOCK" - 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 + 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 - - 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 + unset wsl2_ssh_pageant_bin + fi + + if ! ss -a | grep -q "$GPG_AGENT_SOCK"; then + rm -rf "$GPG_AGENT_SOCK" + wsl2_ssh_pageant_bin="$HOME/.ssh/wsl2-ssh-pageant.exe" + config_path="C\:/Users/$USER/AppData/Local/gnupg" + if test -x "$wsl2_ssh_pageant_bin"; then + (setsid nohup socat UNIX-LISTEN:"$GPG_AGENT_SOCK,fork" EXEC:"$wsl2_ssh_pageant_bin --gpgConfigBasepath ${config_path} --gpg S.gpg-agent" >/dev/null 2>&1 &) + else + echo >&2 "WARNING: $wsl2_ssh_pageant_bin is not executable." 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 &) - else - echo >&2 "WARNING: $wsl2_ssh_pageant_bin is not executable." - fi - unset wsl2_ssh_pageant_bin + unset wsl2_ssh_pageant_bin + 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" + config_path="C\:/Users/$USER/AppData/Local/gnupg" + if test -x "$wsl2_ssh_pageant_bin"; then + (setsid nohup socat UNIX-LISTEN:"${GPG_AGENT_SOCK}.extra,fork" EXEC:"$wsl2_ssh_pageant_bin --gpgConfigBasepath ${config_path} --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-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 + # 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 } # Reload 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 + 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 } # Relearn card serial number gpg-learn() { - gpg-connect-agent.exe "scd serialno" "learn --force" /bye + gpg-connect-agent.exe "scd serialno" "learn --force" /bye } gpg-init diff --git a/wsl/.ssh/wsl2-ssh-pageant.exe b/wsl/.ssh/wsl2-ssh-pageant.exe deleted file mode 100755 index 7852088..0000000 Binary files a/wsl/.ssh/wsl2-ssh-pageant.exe and /dev/null differ -- cgit v1.2.3-70-g09d2