Skip to content

Commit cf66fce

Browse files
committed
some stuff
1 parent 4930178 commit cf66fce

File tree

1 file changed

+43
-38
lines changed

1 file changed

+43
-38
lines changed

github-ci/src/biocontainersci/biotools.py

Lines changed: 43 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)