From 8c1360f8eb56ff9b3c5f2bf435ddde9905c60f7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Av=C3=A9?= Date: Mon, 1 Apr 2024 01:14:38 +0200 Subject: [PATCH] Continue waypipe work --- scripts/launch_alacritty.sh | 7 ++++--- zsh/.zshrc | 19 ++++++++++--------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/scripts/launch_alacritty.sh b/scripts/launch_alacritty.sh index a78b26c..3f1f431 100755 --- a/scripts/launch_alacritty.sh +++ b/scripts/launch_alacritty.sh @@ -21,9 +21,10 @@ if [ "$GRAND_CHILD_PID" != 0 ]; then fi -if [ $RUNNING_SSH == true ] || [ $RUNNING_WAYPIPE == true ]; then - PORT=$(ss -tnpa | grep ssh | grep "pid=$CHILD_PID" | awk '{ print $4 }' | grep -o '[0-9]*$') - alacritty -e ssh "$SSH_CLIENT" -t "cd \"\$(readlink -e /proc/\$(cat /tmp/ssh_session_$PORT)/cwd)\"; zsh --login" +if [ $RUNNING_WAYPIPE == true ]; then + PREVIOUS_SESSION_ID=$(grep -z "SSH_SESSION_ID" "/proc/$CHILD_PID/environ" | xargs -0 -n 1 | grep -oP "[0-9]*") + SSH_SESSION_ID=$RANDOM + alacritty -e zsh -c "SSH_SESSION_ID=$SSH_SESSION_ID waypipe ssh -t \"$SSH_CLIENT\" env SSH_SESSION_ID=\"$SSH_SESSION_ID\" PREVIOUS_SESSION_ID=\"$PREVIOUS_SESSION_ID\" \"zsh --login\"" else if [ "$(ps -p "$1" -o comm=)" == "alacritty" ]; then CWD=$(readlink -e /proc/"$CHILD_PID"/cwd) diff --git a/zsh/.zshrc b/zsh/.zshrc index 3b8a663..15620ae 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -154,8 +154,15 @@ function zvm_after_init() { bindkey -M vicmd "^Y" find_local_files bindkey -M viins "^Y" find_local_files + + if [ "$SSH_SESSION_ID" != "" ]; then + mkdir -p /tmp/ssh_sessions + echo $$ > /tmp/ssh_sessions/"$SSH_SESSION_ID" + fi if [ "$REMOTE_PATH" != "" ]; then - cd $REMOTE_PATH + cd "$REMOTE_PATH" + elif [ "$PREVIOUS_SESSION_ID" != "" ]; then + cd $(readlink -e /proc/$(cat /tmp/ssh_sessions/$PREVIOUS_SESSION_ID)/cwd) fi } @@ -226,7 +233,8 @@ function o () { } function run_waypipe() { - waypipe ssh -t $1 env REMOTE_PATH="$(pwd)" "zsh --login" + SSH_SESSION_ID=$RANDOM + SSH_SESSION_ID=$SSH_SESSION_ID waypipe ssh -t $1 env REMOTE_PATH="$(pwd)" SSH_SESSION_ID=$SSH_SESSION_ID "zsh --login" } alias mallorea="run_waypipe mallorea" @@ -234,13 +242,6 @@ alias vault="run_waypipe vault" alias riva="run_waypipe riva" alias kell="run_waypipe kell" - -if [ "$SSH_CLIENT" ] -then - source_port=$(echo $SSH_CLIENT | awk '{ print $2 }') - echo $$ > /tmp/ssh_session_$source_port -fi - if [[ "$TERM" == (Eterm*|alacritty*|aterm*|gnome*|konsole*|kterm*|putty*|rxvt*|screen*|tmux*|xterm*) ]]; then add-zsh-hook -Uz precmd xterm_title_precmd add-zsh-hook -Uz preexec xterm_title_preexec