Source

galaxy-central-poster / tool_list.py

import os,sys

#--------read tool_conf.xml.sample to get all the tool xml file names-----------
onoff = 1
tool_list = []
for line in open("tool_conf.xml.sample", "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('\"')
	     n = 0
	     tool_info = dict()
	     tool_info["desc"] = ''
	     while n < len(keys) : 
	        if keys[n].find("id") != -1 : tool_info["id"] = keys[n+1].replace(' ', '_') 
	        if keys[n].find("name") != -1 : tool_info["name"] = keys[n+1] 
	        if keys[n].find("description") != -1 : tool_info["desc"] = keys[n+1] 
		n = 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"],
      if tool_info["id"].replace('section::', '')==sys.argv[1]:  
         flag=1

#for key in tool_infos.keys():
#   print tool_infos[key]["id"], "\t", tool_infos[key]["name"], "\t", tool_infos[key]["desc"]
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.