diff options
Diffstat (limited to 'tmux/.local/bin/tmux-sshr')
-rwxr-xr-x | tmux/.local/bin/tmux-sshr | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/tmux/.local/bin/tmux-sshr b/tmux/.local/bin/tmux-sshr deleted file mode 100755 index b206906..0000000 --- a/tmux/.local/bin/tmux-sshr +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh - -if [ -n "$SSH_CLIENT" ] || [ -n "$SSH_TTY" ]; then - tmux_sock=$(tmux display -p "#{socket_path}") - tmux -S "${tmux_sock}.control" run-shell "$(basename "$0") $*" - exit 0 -fi - -HOST=$(tmux display -p '#h' 2>/dev/null) -ATTACHED=$(tmux display -p "#{?#{m:*ssh,#{socket_path}},#{s/_/./:session_name},#{host}}") - -sessions() { - { - tmux -L ssh ls -F '#{?session_last_attached,#{session_last_attached},#{session_created}}:#{s/_/./:session_name}' - tmux ls -F '#{?session_last_attached,#{session_last_attached},#{session_created}}:#{host}' - } 2>/dev/null | sort -u | cut -d':' -f2 -} - -if [ "$#" -eq 0 ]; then - set -- "$( - sessions | sshr --resolve --port 22 --scan 0.0.0.0/24 --exclude "$ATTACHED" --include - | - fzf-tmux -p20%,20% -- --print-query | - tail -1 - )" -elif [ "$1" = "-1" ] 2>/dev/null; then - set -- "$(sessions | sed "/$ATTACHED/d" | head -n1)" -fi - -if [ -z "$1" ]; then - exit 0 -fi - -while read -r k v; do - case "$k" in - "hostname") - hostname=$v - session=$(printf '%s' "$v" | tr '.' '_') - break - ;; - esac -done <<-EOF - $(ssh -G "$@") -EOF - -if [ "${hostname##"$HOST"}" != "$hostname" ]; then - tmux detach -E 'tmux new -A' -else - if ! tmux -L ssh has-session -t "$session" 2>/dev/null; then - tmux -L ssh new-session -ds "$session" -- \ - ssh -t "$@" \ - -R "/tmp/tmux-${HOST}.control:/tmp/tmux-%i/ssh" \ - -- "zsh -l -c 'tmux -S /tmp/tmux-${HOST} new -A'" - fi - - if [ -z "$TMUX" ]; then - tmux -L ssh attach -t "$session" - else - tmux detach -E "tmux -L ssh attach -t $session" - fi - - exit 0 -fi |