summaryrefslogtreecommitdiff
path: root/scripts/cxmux
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/cxmux')
-rwxr-xr-xscripts/cxmux44
1 files changed, 33 insertions, 11 deletions
diff --git a/scripts/cxmux b/scripts/cxmux
index 5ab9090..938ad04 100755
--- a/scripts/cxmux
+++ b/scripts/cxmux
@@ -1,19 +1,35 @@
#!/usr/bin/env python
+
import os
import sys
-import cxmanage_api.fabric
+
from optparse import OptionParser
+import cxmanage_api.fabric
+
+
def main():
- parser = OptionParser("usage: %prog [options] COMMAND ecmeIP", conflict_handler="resolve")
- parser.add_option("-s", "--ssh",
- action="store_const", const=True, dest="ssh", default=False,
- help="Use the SPU IPs rather than ECME IPs")
- parser.add_option("-n", "--nosync",
- action="store_const", const=False, dest="sync", default=True,
- help="Do not syncronize input across terminals")
+ parser = OptionParser(
+ "usage: %prog [options] COMMAND ecmeIP", conflict_handler="resolve"
+ )
+ parser.add_option(
+ "-s", "--ssh",
+ action="store_const", const=True, dest="ssh", default=False,
+ help="Use the SPU IPs rather than ECME IPs"
+ )
+ parser.add_option(
+ "-n", "--nosync",
+ action="store_const", const=False, dest="sync", default=True,
+ help="Do not syncronize input across terminals"
+ )
+ parser.add_option(
+ "--virt-env",
+ action="store", type="string", dest="virt_env",
+ help="Calls workon <virtual_environment> before spawning a window"
+ )
parser.disable_interspersed_args()
+
(options, args) = parser.parse_args()
if len(args) == 0:
parser.print_help()
@@ -22,6 +38,10 @@ def main():
parser.error("Need to specify COMMAND and ecmeIP")
command = " ".join(args[:-1])
+
+ if options.virt_env:
+ command = 'workon %s; ' % options.virt_env + command
+
ecmeip = args[-1]
name = '%s@%s' % (args[0], ecmeip)
fabric = cxmanage_api.fabric.Fabric(ecmeip)
@@ -35,16 +55,18 @@ def main():
os.system('tmux send-keys "%s %s"' % (command, ip))
os.system('tmux send-keys Enter')
continue
-
+
os.system('tmux split-window -h')
os.system('tmux send-keys "%s %s"' % (command, ip))
os.system('tmux send-keys Enter')
os.system('tmux select-layout -t "%s" tiled >/dev/null' % name)
if options.sync:
- os.system('tmux set-window-option -t "%s" synchronize-panes on >/dev/null' % name)
+ os.system(
+ 'tmux set-window-option -t "%s" synchronize-panes on >/dev/null' %
+ name
+ )
- return 0
if __name__ == '__main__':
sys.exit(main())