From 7d2a35635a3eaa09858016770ec421168c9c3fe9 Mon Sep 17 00:00:00 2001 From: Dinis Date: Wed, 24 May 2017 15:32:11 +0100 Subject: [PATCH] Added support for multi-session and multi-machine Added: * Optional session name as argument * Multiple named tmux sessions to the same machine * multiple machines with shared homes * changed default session name to 'default' --- scripts/tmux.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/scripts/tmux.py b/scripts/tmux.py index 3cc70b3..9de381f 100755 --- a/scripts/tmux.py +++ b/scripts/tmux.py @@ -1,16 +1,23 @@ #!/usr/bin/env python import os import subprocess +import sys print("TMUX: %s" % os.getenv("TMUX", "")) print("SSH_TTY: %s" % os.getenv("SSH_TTY", "")) print("SSH_AUTH_SOCK: %s" % os.getenv("SSH_AUTH_SOCK", "")) print("HOME: %s" % os.getenv("HOME", "")) +session_name = 'default' +if len(sys.argv) > 1: + session_name = sys.argv[1] + +ssh_auth_sock = '-'.join(['ssh_auth_sock', os.getenv('HOSTNAME'), session_name]) + if os.getenv("TMUX") is None: if os.getenv("SSH_TTY") is not None: if os.getenv("SSH_AUTH_SOCK") is not None: - sock_file = os.path.join(os.getenv("HOME"), ".wrap_auth_sock") + sock_file = os.path.join(os.getenv("HOME"), '.ssh', ssh_auth_sock) try: #always try to remove os.remove(sock_file) @@ -20,9 +27,9 @@ os.environ['SSH_AUTH_SOCK'] = sock_file try: - subprocess.check_call(["tmux", "attach-session", "-t", "sshwrap"]) + subprocess.check_call(["tmux", "attach-session", "-t", session_name]) except subprocess.CalledProcessError: print("lets create session") os.environ['STY'] = "tmux-sshwrap" - os.execlpe("tmux", "tmux", "new-session", "-s", "sshwrap", + os.execlpe("tmux", "tmux", "new-session", "-s", session_name, os.environ)