summaryrefslogtreecommitdiff
path: root/bin/ssh-and-tmux
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2021-11-10 16:57:33 -0700
committerSean Whitton <spwhitton@spwhitton.name>2021-11-10 16:57:33 -0700
commit0d7d66c2ae926426ea06dccf01ec2687747368ac (patch)
treedc1aecaa9aaa44a32dcc8cc4f9ef98f0d7c670bf /bin/ssh-and-tmux
parent09f0ea7c8d20e892d18fa9d194d0a4d3739cf777 (diff)
downloaddotfiles-0d7d66c2ae926426ea06dccf01ec2687747368ac.tar.gz
wofi_ssh, ssh-and-tmux-term for athenet LXCs
Diffstat (limited to 'bin/ssh-and-tmux')
-rwxr-xr-xbin/ssh-and-tmux24
1 files changed, 22 insertions, 2 deletions
diff --git a/bin/ssh-and-tmux b/bin/ssh-and-tmux
index 37dc8fb6..87ace865 100755
--- a/bin/ssh-and-tmux
+++ b/bin/ssh-and-tmux
@@ -10,12 +10,32 @@
# ServerAliveInterval and low ServerAliveCountMax, but that's desirable,
# because unresponsive SSH sessions are a massive pain)
+getopt=$(getopt -s bash -o "" -l 'container-cmd:,container-name:' -n ssh-and-tmux -- "$@")
+eval "set - $getopt"
+
+while true; do
+ case "$1" in
+ '--container-cmd') container_cmd=$2; shift 2; continue ;;
+ '--container-name') container_name=$2; shift 2; continue ;;
+
+ '--') shift; break ;;
+ esac
+done
+
host="$1"
session="${2:-default}"
-prompt="Press any key to reconnect to tmux session $session on $host; d/C-d/C-c to give up .."
+cmd="tmux new-session -A -c \$HOME -s $session"
+if [ -n "$container_name" ]; then
+ display_host="$container_name"
+ cmd="$(printf "$container_cmd" "$container_name") -- $cmd"
+else
+ display_host="$host"
+fi
+echo -ne "\033]0;tmux $session on $display_host\007"
+prompt="Press any key to reconnect to tmux session $session on $display_host; d/C-d/C-c to give up .."
while true; do
- ssh -t "$host" "tmux new-session -A -s $session"
+ ssh -t "$host" "$cmd"
clear
read -n 1 -r -s -p "$prompt" ch
[ "$ch" = $'\04' -o "$ch" = d ] && echo && exit