Continue waypipe work

This commit is contained in:
Thomas Avé 2024-04-01 01:14:38 +02:00
parent efe8d6714a
commit 8c1360f8eb
2 changed files with 14 additions and 12 deletions

View File

@ -21,9 +21,10 @@ if [ "$GRAND_CHILD_PID" != 0 ]; then
fi fi
if [ $RUNNING_SSH == true ] || [ $RUNNING_WAYPIPE == true ]; then if [ $RUNNING_WAYPIPE == true ]; then
PORT=$(ss -tnpa | grep ssh | grep "pid=$CHILD_PID" | awk '{ print $4 }' | grep -o '[0-9]*$') PREVIOUS_SESSION_ID=$(grep -z "SSH_SESSION_ID" "/proc/$CHILD_PID/environ" | xargs -0 -n 1 | grep -oP "[0-9]*")
alacritty -e ssh "$SSH_CLIENT" -t "cd \"\$(readlink -e /proc/\$(cat /tmp/ssh_session_$PORT)/cwd)\"; zsh --login" 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 else
if [ "$(ps -p "$1" -o comm=)" == "alacritty" ]; then if [ "$(ps -p "$1" -o comm=)" == "alacritty" ]; then
CWD=$(readlink -e /proc/"$CHILD_PID"/cwd) CWD=$(readlink -e /proc/"$CHILD_PID"/cwd)

View File

@ -154,8 +154,15 @@ function zvm_after_init() {
bindkey -M vicmd "^Y" find_local_files bindkey -M vicmd "^Y" find_local_files
bindkey -M viins "^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 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 fi
} }
@ -226,7 +233,8 @@ function o () {
} }
function run_waypipe() { 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" alias mallorea="run_waypipe mallorea"
@ -234,13 +242,6 @@ alias vault="run_waypipe vault"
alias riva="run_waypipe riva" alias riva="run_waypipe riva"
alias kell="run_waypipe kell" 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 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 precmd xterm_title_precmd
add-zsh-hook -Uz preexec xterm_title_preexec add-zsh-hook -Uz preexec xterm_title_preexec