diff options
author | evasquez <eric.vasquez@calxeda.com> | 2013-10-16 17:48:54 -0500 |
---|---|---|
committer | evasquez <eric.vasquez@calxeda.com> | 2013-10-16 17:48:54 -0500 |
commit | e62b7e2960ccca5a062712a1ea3bfb87bbf86ec0 (patch) | |
tree | b0b920092c459a71d699b81895eac7d3535a1384 | |
parent | 87e004da5471c84f48310f7ecdd78e574d95a6ab (diff) | |
download | cxmanage-e62b7e2960ccca5a062712a1ea3bfb87bbf86ec0.tar.gz |
:nojira: Added a --virt-env option to cmux
If you need to be in your virtual environment to call ipmitool, then
cxmux wasn't able to help much. Now you can call cxmux like this:
cxmux --virt-env MyVirtEnv ipmitool -I lanplus -U admin -P admin sol
activate -H <ip_addr>
This will prepend a 'workon MyVirtEnv' before executing your command.
Also made the code conform to PEP8
Signed-off-by: evasquez <eric.vasquez@calxeda.com>
-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()) |