diff options
Diffstat (limited to 'scripts/cxmux')
-rwxr-xr-x | scripts/cxmux | 44 |
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()) |