Add support for waypipe
This commit is contained in:
parent
2759b53f3c
commit
c7cf984baf
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue