diff options
author | Daniel P. Berrangé <berrange@redhat.com> | 2022-03-11 13:38:55 +0000 |
---|---|---|
committer | Daniel P. Berrangé <berrange@redhat.com> | 2022-05-11 13:20:39 +0100 |
commit | fc322436a5f54d5772dbf04a589a97ed2eff0854 (patch) | |
tree | 4035c6316d2e17d8e7de2588f4ff83dbdfe41640 | |
parent | 5327f35906531711603e1cad545f200d8ed2beb8 (diff) | |
download | libvirt-ci-fc322436a5f54d5772dbf04a589a97ed2eff0854.zip libvirt-ci-fc322436a5f54d5772dbf04a589a97ed2eff0854.tar.gz libvirt-ci-fc322436a5f54d5772dbf04a589a97ed2eff0854.tar.bz2 |
lcitool/manifest: split out logic for writing out a YAML file
We currently write out a single YAML file for the GitLab config,
but will shortly be switching to create many files.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
-rw-r--r-- | guests/lcitool/lcitool/manifest.py | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/guests/lcitool/lcitool/manifest.py b/guests/lcitool/lcitool/manifest.py index 7e8f954..5ac4f10 100644 --- a/guests/lcitool/lcitool/manifest.py +++ b/guests/lcitool/lcitool/manifest.py @@ -234,6 +234,21 @@ class Manifest: def _clean_cirrus(self, generated, dryrun): self._clean_files(generated, dryrun, "cirrus", "vars") + def _replace_file(self, content, path, dryrun): + if len(content) == 0: + if not self.quiet: + print(f"Deleting {path}") + path.unlink(missing_ok=True) + return + + if not self.quiet: + print(f"Generating {path}") + header = util.generate_file_header(["manifest", self.configpath]) + + lines = header + "\n".join(content) + if not dryrun: + util.atomic_write(path, lines) + def _generate_gitlab(self, dryrun): if not dryrun: self.outdir.mkdir(parents=True, exist_ok=True) @@ -287,19 +302,7 @@ class Manifest: gitlabcontent.extend(self._generate_gitlab_cross_build_jobs()) gitlabcontent.extend(self._generate_gitlab_cirrus_build_jobs()) - if len(gitlabcontent) == 0: - if not self.quiet: - print(f"Deleting {gitlabfile}") - gitlabfile.unlink(missing_ok=True) - return - - if not self.quiet: - print(f"Generating {gitlabfile}") - header = util.generate_file_header(["manifest", self.configpath]) - - lines = header + "\n".join(gitlabcontent) - if not dryrun: - util.atomic_write(gitlabfile, lines) + self._replace_file(gitlabcontent, gitlabfile, dryrun) def _generate_gitlab_container_jobs(self, cross): jobs = [] |