From e62b7e2960ccca5a062712a1ea3bfb87bbf86ec0 Mon Sep 17 00:00:00 2001 From: evasquez Date: Wed, 16 Oct 2013 17:48:54 -0500 Subject: :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 This will prepend a 'workon MyVirtEnv' before executing your command. Also made the code conform to PEP8 Signed-off-by: evasquez --- scripts/cxmux | 44 +++++++++++++++++++++++++++++++++----------- 1 file 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 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()) -- cgit v1.2.1