Mercurial > repos > galaxyp > mzmatch
comparison mzmatch_wrapper.py @ 0:201a15633354 draft default tip
Initial commit.
| author | galaxyp |
|---|---|
| date | Fri, 10 May 2013 17:28:02 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:201a15633354 |
|---|---|
| 1 from os.path import dirname, join, abspath | |
| 2 import sys | |
| 3 from optparse import OptionParser | |
| 4 from ConfigParser import SafeConfigParser | |
| 5 import subprocess | |
| 6 | |
| 7 DEBUG = False | |
| 8 | |
| 9 | |
| 10 def main(): | |
| 11 (options, args) = _parse_args() | |
| 12 for executable, config_path in zip(options.executables, options.configs): | |
| 13 command_handler = COMMAND_HANDLERS.get(executable, _run_mzmatch) | |
| 14 command_handler(executable, config_path) | |
| 15 | |
| 16 | |
| 17 def _run_shell(executable, config_path): | |
| 18 command = open(config_path, "r").read().strip() | |
| 19 if DEBUG: | |
| 20 print "Running shell command %s" % command | |
| 21 _exec(command) | |
| 22 | |
| 23 | |
| 24 def _run_mzmatch(executable, config_path): | |
| 25 command_prefix = "java -cp %s" % _jar_path() | |
| 26 java_class = "mzmatch.ipeak.%s" % executable | |
| 27 args = open(config_path, "r").read().strip() | |
| 28 _exec("%s %s %s" % (command_prefix, java_class, args)) | |
| 29 | |
| 30 | |
| 31 def _jar_path(): | |
| 32 py_path = __file__ | |
| 33 jar_path = join(dirname(py_path), "mzmatch_2.0.jar") | |
| 34 return jar_path | |
| 35 | |
| 36 COMMAND_HANDLERS = { | |
| 37 "__SHELL__": _run_shell, | |
| 38 } | |
| 39 | |
| 40 | |
| 41 def _exec(command): | |
| 42 proc = subprocess.Popen(args=command, shell=True) | |
| 43 return_code = proc.wait() | |
| 44 if return_code != 0: | |
| 45 print "Error executing command [%s], return code is %d" % (command, return_code) | |
| 46 sys.exit(return_code) | |
| 47 | |
| 48 | |
| 49 def _parse_args(): | |
| 50 parser = OptionParser() | |
| 51 parser.add_option("-e", "--executable", dest="executables", default=[], action="append") | |
| 52 parser.add_option("-c", "--config", dest="configs", default=[], action="append") | |
| 53 return parser.parse_args() | |
| 54 | |
| 55 | |
| 56 def _load_options(config_path): | |
| 57 config_parser = SafeConfigParser() | |
| 58 config_parser.optionxform = str | |
| 59 config_parser.read(config_path) | |
| 60 return config_parser | |
| 61 | |
| 62 if __name__ == "__main__": | |
| 63 main() |
