Mercurial > repos > mvdbeek > docker_scriptrunner
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: |