comparison rgedgeR/rgToolFactory.py @ 19:372ce0323554 draft

Uploaded
author fubar
date Sat, 27 Jul 2013 20:55:31 -0400
parents cd586457aced
children 42c28d9fc836
comparison
equal deleted inserted replaced
18:1ba6b7c6f4df 19:372ce0323554
130 tscript = open(self.sfile,'w') # use self.sfile as script source for Popen 130 tscript = open(self.sfile,'w') # use self.sfile as script source for Popen
131 tscript.write(self.script) 131 tscript.write(self.script)
132 tscript.close() 132 tscript.close()
133 self.indentedScript = '\n'.join([' %s' % x for x in s]) # for restructured text in help 133 self.indentedScript = '\n'.join([' %s' % x for x in s]) # for restructured text in help
134 self.escapedScript = '\n'.join([html_escape(x) for x in s]) 134 self.escapedScript = '\n'.join([html_escape(x) for x in s])
135 if opts.output_dir: # may not want these complexities 135 self.elog = os.path.join(self.opts.output_dir,"%s_error.log" % self.toolname)
136 if opts.output_dir: # may not want these complexities
136 self.tlog = os.path.join(self.opts.output_dir,"%s_runner.log" % self.toolname) 137 self.tlog = os.path.join(self.opts.output_dir,"%s_runner.log" % self.toolname)
137 art = '%s.%s' % (self.toolname,opts.interpreter) 138 art = '%s.%s' % (self.toolname,opts.interpreter)
138 artpath = os.path.join(self.opts.output_dir,art) # need full path 139 artpath = os.path.join(self.opts.output_dir,art) # need full path
139 artifact = open(artpath,'w') # use self.sfile as script source for Popen 140 artifact = open(artpath,'w') # use self.sfile as script source for Popen
140 artifact.write(self.script) 141 artifact.write(self.script)
513 """ 514 """
514 if self.treatbashSpecial and self.opts.interpreter in ['bash','sh']: 515 if self.treatbashSpecial and self.opts.interpreter in ['bash','sh']:
515 retval = self.runBash() 516 retval = self.runBash()
516 else: 517 else:
517 if self.opts.output_dir: 518 if self.opts.output_dir:
519 ste = open(self.elog,'w')
518 sto = open(self.tlog,'w') 520 sto = open(self.tlog,'w')
519 sto.write('## Toolfactory generated command line = %s\n' % ' '.join(self.cl)) 521 sto.write('## Toolfactory generated command line = %s\n' % ' '.join(self.cl))
520 sto.flush() 522 sto.flush()
521 p = subprocess.Popen(self.cl,shell=False,stdout=sto,stderr=sto,stdin=subprocess.PIPE,cwd=self.opts.output_dir) 523 p = subprocess.Popen(self.cl,shell=False,stdout=sto,stderr=elog,stdin=subprocess.PIPE,cwd=self.opts.output_dir)
522 else: 524 else:
523 p = subprocess.Popen(self.cl,shell=False,stdin=subprocess.PIPE) 525 p = subprocess.Popen(self.cl,shell=False,stdin=subprocess.PIPE)
524 p.stdin.write(self.script) 526 p.stdin.write(self.script)
525 p.stdin.close() 527 p.stdin.close()
526 retval = p.wait() 528 retval = p.wait()
527 if self.opts.output_dir: 529 if self.opts.output_dir:
528 sto.close() 530 sto.close()
531 ste.close()
532 err = open(self.elog,'r').readlines()
533 if retval <> 0 and err: # problem
534 print >> sys.stderr,err
529 if self.opts.make_HTML: 535 if self.opts.make_HTML:
530 self.makeHtml() 536 self.makeHtml()
531 return retval 537 return retval
532 538
533 def runBash(self): 539 def runBash(self):