forked from galaxyproject/galaxy
-
Notifications
You must be signed in to change notification settings - Fork 1
/
tool_list.py
83 lines (76 loc) · 3.06 KB
/
tool_list.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
from __future__ import print_function
import os
import sys
# read tool_conf.xml to get all the tool xml file names
onoff = 1
tool_list = []
tool_conf_file = os.environ.get('GALAXY_TEST_TOOL_CONF', None)
if tool_conf_file is None:
for possible_tool_file in ['config/tool_conf.xml', 'tool_conf.xml', 'config/tool_conf.xml.sample']:
tool_conf_file = possible_tool_file
if os.path.isfile(possible_tool_file):
break
if tool_conf_file is None or not os.path.isfile(tool_conf_file):
sys.stderr.write("Tool config file not found: {}\n".format(tool_conf_file))
sys.exit(1)
for line in open(tool_conf_file, "r"):
if line.find("<!--") != -1:
onoff = 0
if line.find("file") != -1 and onoff == 1:
strs = line.split('\"')
tool_list.append(strs[1])
if line.find("<section") != -1 and onoff == 1:
keys = line.strip().split('\"')
n = 0
strtmp = "section::"
while n < len(keys):
if keys[n].find("id") != -1:
strtmp = strtmp + keys[n + 1]
if keys[n].find("name") != -1:
strtmp = strtmp + keys[n + 1] + "-"
n = n + 1
tool_list.append(strtmp.replace(' ', '_'))
if line.find("-->") != -1:
onoff = 1
# read tool info from every tool xml file
name = []
id = []
desc = []
tool_infos = []
for tool in tool_list:
if tool.find("section") != -1:
tool_info = dict()
tool_info["id"] = tool
tool_infos.append(tool_info)
if os.path.exists("tools/" + tool):
for line in open("tools/" + tool):
if line.find("<tool ") != -1 and line.find("id") != -1:
keys = line.strip().split('\"')
tool_info = dict()
tool_info["desc"] = ''
for n in range(len(keys) - 1):
if " id=" in keys[n]:
tool_info["id"] = keys[n + 1].replace(' ', '_')
if " name=" in keys[n]:
tool_info["name"] = keys[n + 1]
if " description=" in keys[n]:
tool_info["desc"] = keys[n + 1]
tool_infos.append(tool_info)
break
flag = 0
if len(sys.argv) == 1:
for tool_info in tool_infos:
if tool_info["id"].find("section") != -1:
print("===========================================================================================================================================")
print("%-45s\t%-40s\t%s" % ("id", "name", tool_info["id"]))
print("- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -")
else:
print("%-45s\t%-40s" % (tool_info["id"], tool_info["name"]))
else:
for tool_info in tool_infos:
if tool_info["id"].find("section") != -1:
flag = 0
elif flag == 1:
print(" functional.test_toolbox:TestForTool_%s" % tool_info["id"], end=' ')
if tool_info["id"].replace('section::', '') == sys.argv[1]:
flag = 1