From c7cf984baf24e41d83a40805805ab9f1e903bdbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Av=C3=A9?= Date: Sun, 31 Mar 2024 23:35:40 +0200 Subject: [PATCH] Add support for waypipe --- scripts/launch_alacritty.sh | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/scripts/launch_alacritty.sh b/scripts/launch_alacritty.sh index 0708db9..4334625 100755 --- a/scripts/launch_alacritty.sh +++ b/scripts/launch_alacritty.sh @@ -1,21 +1,32 @@ #!/bin/bash RUNNING_SSH=false -CHILD_PID=$(pgrep -P $1) +RUNNING_WAYPIPE=false +SSH_CLIENT="" +CHILD_PID=$(pgrep -P "$1") -[[ $(ps -p $CHILD_PID -o comm=) == "ssh" ]] && RUNNING_SSH=true - -GRAND_CHILD_PID=$(pgrep -P $CHILD_PID) -[[ $? == 0 ]] && [[ $(ps -p $GRAND_CHILD_PID -o comm=) == "ssh" ]] && RUNNING_SSH=true && CHILD_PID=$GRAND_CHILD_PID +GRAND_CHILD_PID=$(pgrep -P "$CHILD_PID") +if [ "$GRAND_CHILD_PID" != 0 ]; then + GRAND_CHILD_NAME=$(ps -p "$GRAND_CHILD_PID" -o comm=) + if [ "$GRAND_CHILD_NAME" == "ssh" ]; then + RUNNING_SSH=true + CHILD_PID=$GRAND_CHILD_PID + SSH_CLIENT=$(ps -p "$CHILD_PID" -o args --no-headers | awk '{ print $2 }') + fi + if [ "$GRAND_CHILD_NAME" == "waypipe" ]; then + RUNNING_WAYPIPE=true + CHILD_PID=$(pgrep -P "$GRAND_CHILD_PID") + SSH_CLIENT=$(ps -p "$GRAND_CHILD_PID" -o args --no-headers | awk '{ print $3 }') + fi +fi -if [ $RUNNING_SSH == true ]; then - CLIENT=$(ps -p $CHILD_PID -o args --no-headers | awk '{ print $2 }') +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 $CLIENT -t "cd \"\$(readlink -e /proc/\$(cat /tmp/ssh_session_$PORT)/cwd)\"; zsh --login" + alacritty -e ssh "$SSH_CLIENT" -t "cd \"\$(readlink -e /proc/\$(cat /tmp/ssh_session_$PORT)/cwd)\"; zsh --login" else - if [ "$(ps -p $1 -o comm=)" == "alacritty" ]; then - CWD=$(readlink -e /proc/$CHILD_PID/cwd) + if [ "$(ps -p "$1" -o comm=)" == "alacritty" ]; then + CWD=$(readlink -e /proc/"$CHILD_PID"/cwd) if [ "$CWD" != "" ]; then alacritty --working-directory "$CWD" else