dotfiles/.config/scripts/launch_alacritty.sh

38 lines
1.2 KiB
Bash
Raw Normal View History

#!/bin/bash
2024-03-31 23:35:40 +02:00
RUNNING_WAYPIPE=false
SSH_CLIENT=""
CHILD_PID=$(pgrep -P "$1")
2024-03-31 23:35:40 +02:00
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
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")
2024-04-01 00:12:14 +02:00
SSH_CLIENT=$(ps -p "$GRAND_CHILD_PID" -o args --no-headers | awk '{ print $4 }')
2024-03-31 23:35:40 +02:00
fi
fi
2023-12-02 00:03:50 +01:00
2024-04-01 01:14:38 +02:00
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\""
2023-09-17 21:31:30 +02:00
else
2024-03-31 23:35:40 +02:00
if [ "$(ps -p "$1" -o comm=)" == "alacritty" ]; then
CWD=$(readlink -e /proc/"$CHILD_PID"/cwd)
2023-12-12 19:46:42 +01:00
if [ "$CWD" != "" ]; then
2023-12-02 00:03:50 +01:00
alacritty --working-directory "$CWD"
else
alacritty
fi
else
alacritty
fi
2023-09-17 21:31:30 +02:00
fi