#!/bin/bash RUNNING_SSH=false RUNNING_WAYPIPE=false SSH_CLIENT="" CHILD_PID=$(pgrep -P "$1") 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 $4 }') fi 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" else if [ "$(ps -p "$1" -o comm=)" == "alacritty" ]; then CWD=$(readlink -e /proc/"$CHILD_PID"/cwd) if [ "$CWD" != "" ]; then alacritty --working-directory "$CWD" else alacritty fi else alacritty fi fi