summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorevasquez <eric.vasquez@calxeda.com>2013-10-16 17:48:54 -0500
committerevasquez <eric.vasquez@calxeda.com>2013-10-16 17:48:54 -0500
commite62b7e2960ccca5a062712a1ea3bfb87bbf86ec0 (patch)
treeb0b920092c459a71d699b81895eac7d3535a1384
parent87e004da5471c84f48310f7ecdd78e574d95a6ab (diff)
downloadcxmanage-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-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())