comparison scriptrunner.py @ 2:813b55d27809 draft

planemo upload for repository https://github.com/mvdbeek/docker_scriptrunner/ commit 00001c5d9561808c683a757bca91df6a1ba0f0b3
author mvdbeek
date Fri, 08 Jul 2016 15:49:28 -0400
parents b6211faea403
children e1f5be390bc3
comparison
equal deleted inserted replaced
1:29adb7607591 2:813b55d27809
75 binds=construct_bind(binds=binds, host_path=opts.output_html, ro=False) 75 binds=construct_bind(binds=binds, host_path=opts.output_html, ro=False)
76 binds=construct_bind(binds=binds, host_path=toolfactory_path) 76 binds=construct_bind(binds=binds, host_path=toolfactory_path)
77 volumes=binds.keys() 77 volumes=binds.keys()
78 sys.argv=[abspath(opts.output_dir) if sys.argv[i-1]=='--output_dir' else arg for i,arg in enumerate(sys.argv)] ##inject absolute path of working_dir 78 sys.argv=[abspath(opts.output_dir) if sys.argv[i-1]=='--output_dir' else arg for i,arg in enumerate(sys.argv)] ##inject absolute path of working_dir
79 cmd=['python', '-u']+sys.argv+['--dockerized', '1'] 79 cmd=['python', '-u']+sys.argv+['--dockerized', '1']
80 image_exists = [ True for image in docker_client.images() if opts.docker_image in image['RepoTags'] ]
81 if not image_exists:
82 docker_client.pull(opts.docker_image)
80 container=docker_client.create_container( 83 container=docker_client.create_container(
81 image=opts.docker_image, # Make this configureable through job_conf 84 image=opts.docker_image,
82 user=current_user, # TODO: make this configurable on the current user 85 user=current_user,
83 volumes=volumes, 86 volumes=volumes,
84 command=cmd 87 command=cmd
85 ) 88 )
86 docker_client.start(container=container[u'Id'], binds=binds) 89 docker_client.start(container=container[u'Id'], binds=binds)
87 docker_client.wait(container=container[u'Id']) 90 docker_client.wait(container=container[u'Id'])
98 cleanup inputs, setup some outputs 101 cleanup inputs, setup some outputs
99 102
100 """ 103 """
101 self.opts = opts 104 self.opts = opts
102 self.scriptname = 'script' 105 self.scriptname = 'script'
103 self.useGM = cmd_exists('gm')
104 self.useIM = cmd_exists('convert') 106 self.useIM = cmd_exists('convert')
105 self.useGS = cmd_exists('gs') 107 self.useGS = cmd_exists('gs')
106 self.temp_warned = False # we want only one warning if $TMP not set 108 self.temp_warned = False # we want only one warning if $TMP not set
107 self.treatbashSpecial = treatbashSpecial 109 self.treatbashSpecial = treatbashSpecial
108 self.image_tag = image_tag 110 self.image_tag = image_tag
181 shutil.move(outpdf,inpdf) 183 shutil.move(outpdf,inpdf)
182 os.unlink(hlog) 184 os.unlink(hlog)
183 hlog = os.path.join(self.opts.output_dir,"thumbnail_%s.txt" % os.path.basename(inpdf)) 185 hlog = os.path.join(self.opts.output_dir,"thumbnail_%s.txt" % os.path.basename(inpdf))
184 sto = open(hlog,'w') 186 sto = open(hlog,'w')
185 outpng = '%s.%s' % (os.path.splitext(inpdf)[0],thumbformat) 187 outpng = '%s.%s' % (os.path.splitext(inpdf)[0],thumbformat)
186 # if self.useGM:
187 # cl2 = ['gm', 'convert', inpdf, outpng]
188 # else: # assume imagemagick
189 cl2 = ['convert', inpdf, outpng] 188 cl2 = ['convert', inpdf, outpng]
190 x = subprocess.Popen(cl2,stdout=sto,stderr=sto,cwd=self.opts.output_dir,env=our_env) 189 x = subprocess.Popen(cl2,stdout=sto,stderr=sto,cwd=self.opts.output_dir,env=our_env)
191 retval2 = x.wait() 190 retval2 = x.wait()
192 sto.close() 191 sto.close()
193 if retval2 == 0: 192 if retval2 == 0: