@@ -148,53 +148,58 @@ def run(self, f, labels, branch=None):
148148 try :
149149 (repo , branch ) = self .repo_setup (branch )
150150
151- tmpdir = self .REPO + '/data/'
152- dirname = tmpdir + name
153- biocontainers_file = tmpdir + name + '/biocontainers.yaml'
151+ all_tmpdir = self .REPO + '/import/biocontainers/'
152+ if not os .path .exists (all_tmpdir ):
153+ os .makedirs (all_tmpdir )
154+ files_to_write = [all_tmpdir + '{}.biocontainers.yaml' .format (name )]
154155 if biotools is not None :
155- dirname = tmpdir + biotools
156- biocontainers_file = tmpdir + biotools + '/biocontainers.yaml'
157-
158- if not os .path .exists (dirname ):
159- os .makedirs (dirname )
156+ biotool_tmpdir = self .REPO + '/data/{}/' .format (biotools )
157+ if not os .path .exists (biotool_tmpdir ):
158+ os .makedirs (biotool_tmpdir )
159+ files_to_write .append (biotool_tmpdir + '{}.biocontainers.yaml' .format (name ))
160160
161161 clabels = {}
162162 for k , v in labels .items ():
163163 clabels [k ] = v
164164
165165 data = {
166- 'software' : name ,
167- 'labels' : deepcopy (clabels ),
168- 'versions' : []
169- }
166+ 'software' : name ,
167+ 'labels' : deepcopy (clabels ),
168+ 'versions' : []
169+ }
170+
170171 softwares = {'softwares' : {}}
171172 softwares ["softwares" ][name ] = data
172- if os .path .exists (biocontainers_file ):
173- with open (biocontainers_file ) as fp :
174- softwares = load (fp , Loader = Loader )
175-
176- if name not in softwares ["softwares" ]:
177- softwares ["softwares" ][name ] = data
178-
179- exists = False
180- for download in softwares ["softwares" ][name ]["versions" ]:
181- if download ["version" ] == container_version :
182- exists = True
183- break
184-
185- if not exists :
186- new_download = {
187- "url" : "biocontainers/" + name + ":" + container_version ,
188- "version" : container_version ,
189- "type" : "Container file" ,
190- "labels" : deepcopy (clabels )
191- }
192- softwares ["softwares" ][name ]["versions" ].append (new_download )
193-
194- with open (biocontainers_file , 'w' ) as fp :
195- dump (softwares , fp , Dumper = Dumper )
196-
197- repo .index .add ([biocontainers_file ])
173+
174+ for file_path in files_to_write :
175+
176+ if os .path .exists (file_path ):
177+ with open (file_path ) as fp :
178+ softwares = load (fp , Loader = Loader )
179+
180+ if name not in softwares ["softwares" ]:
181+ softwares ["softwares" ][name ] = data
182+
183+ exists = False
184+ for download in softwares ["softwares" ][name ]["versions" ]:
185+ if download ["version" ] == container_version :
186+ exists = True
187+ break
188+
189+ if not exists :
190+ new_download = {
191+ "url" : "biocontainers/" + name + ":" + container_version ,
192+ "version" : container_version ,
193+ "type" : "Container file" ,
194+ "labels" : deepcopy (clabels )
195+ }
196+ softwares ["softwares" ][name ]["versions" ].append (new_download )
197+
198+ with open (file_path , 'w' ) as fp :
199+ dump (softwares , fp , Dumper = Dumper )
200+
201+ repo .index .add ([file_path ])
202+ if exists :
198203 if biotools is not None :
199204 repo .index .commit ("Add version for %s:%s" % (biotools , container_version ))
200205 else :
0 commit comments