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'
This commit is contained in:
Dinis authored and GitHub committed 2017-05-24 15:32:11 +01:00
1 parent f0ee6c736b
commit 7d2a35635a
1 file changed
+10 -3
+10 -3
View File
@@ -1,16 +1,23 @@
#!/usr/bin/env python #!/usr/bin/env python
import os import os
import subprocess import subprocess
import sys
print("TMUX: %s" % os.getenv("TMUX", "")) print("TMUX: %s" % os.getenv("TMUX", ""))
print("SSH_TTY: %s" % os.getenv("SSH_TTY", "")) print("SSH_TTY: %s" % os.getenv("SSH_TTY", ""))
print("SSH_AUTH_SOCK: %s" % os.getenv("SSH_AUTH_SOCK", "")) print("SSH_AUTH_SOCK: %s" % os.getenv("SSH_AUTH_SOCK", ""))
print("HOME: %s" % os.getenv("HOME", "")) 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("TMUX") is None:
if os.getenv("SSH_TTY") is not None: if os.getenv("SSH_TTY") is not None:
if os.getenv("SSH_AUTH_SOCK") 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: try:
#always try to remove #always try to remove
os.remove(sock_file) os.remove(sock_file)
@@ -20,9 +27,9 @@ if os.getenv("TMUX") is None:
os.environ['SSH_AUTH_SOCK'] = sock_file os.environ['SSH_AUTH_SOCK'] = sock_file
try: try:
subprocess.check_call(["tmux", "attach-session", "-t", "sshwrap"]) subprocess.check_call(["tmux", "attach-session", "-t", session_name])
except subprocess.CalledProcessError: except subprocess.CalledProcessError:
print("lets create session") print("lets create session")
os.environ['STY'] = "tmux-sshwrap" os.environ['STY'] = "tmux-sshwrap"
os.execlpe("tmux", "tmux", "new-session", "-s", "sshwrap", os.execlpe("tmux", "tmux", "new-session", "-s", session_name,
os.environ) os.environ)