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
2017-05-24 15:32:11 +01:00
committed by GitHub
parent f0ee6c736b
commit 7d2a35635a
+10 -3
View File
@@ -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 @@ if os.getenv("TMUX") is None:
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)