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() |