diff --git a/functions.sh b/functions.sh index 14e4071..cae8f73 100644 --- a/functions.sh +++ b/functions.sh @@ -134,3 +134,7 @@ function true_false() { # [[ "${1,,}" =~ ^(1|true|yes)$ ]] [[ "${1@L}" =~ ^(1|true|yes)$ ]] } + +function is_wsl() { + grep -q -i wsl /proc/version +} diff --git a/rc/01-path.sh b/rc/01-path.sh index 0bb212d..2809622 100644 --- a/rc/01-path.sh +++ b/rc/01-path.sh @@ -1 +1,2 @@ prepend_path_try "$HOME/.local/bin" +prepend_path_try "$HOME/bin" diff --git a/rc/ssh-agent.sh b/rc/ssh-agent.sh index e83ca51..b219d91 100644 --- a/rc/ssh-agent.sh +++ b/rc/ssh-agent.sh @@ -2,8 +2,25 @@ for key in id_ecdsa id_rsa; do key_filename="$HOME/.ssh/$key" - if [ -f $key_filename ]; then - eval $(keychain --eval --quiet --agents ssh $key) + + if [ -f "$key_filename" ]; then + + if is_wsl; then + if [ -z "$SSH_AUTH_SOCK" ]; then + export SSH_AUTH_SOCK=$HOME/.ssh/ssh-agent.sock + fi + + if [ ! -S "$SSH_AUTH_SOCK" ]; then + eval "$(ssh-agent -s -a "$SSH_AUTH_SOCK")" + fi + + if ! ssh-add -L > /dev/null; then + ssh-add "$key_filename" + fi + else + eval "$(keychain --eval --quiet --agents ssh $key)" + fi + break fi done diff --git a/rc/wsl.sh b/rc/wsl.sh index e1031ed..c3ee5df 100644 --- a/rc/wsl.sh +++ b/rc/wsl.sh @@ -1,8 +1,3 @@ -function is_wsl() -{ - grep -q -i wsl /proc/version -} - if is_wsl; then prepend_path_try "$HOME/.local/bin" append_path_try "$HOME/.arkade/bin"