From fd5b7355d0e70cc3d1ca955158f20c11801bffb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Pierret=20=28fepitre=29?= Date: Sun, 29 Dec 2019 19:05:07 +0100 Subject: [PATCH] lorax: user repo file from kickstart --- Makefile | 2 +- conf/dnf-lorax.repo.in | 27 ------------------ ksparser | 62 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+), 28 deletions(-) delete mode 100644 conf/dnf-lorax.repo.in create mode 100755 ksparser diff --git a/Makefile b/Makefile index 976cbd4..53cd412 100644 --- a/Makefile +++ b/Makefile @@ -88,7 +88,7 @@ iso-installer-gather: pushd $(BASE_DIR)/os/ && $(CREATEREPO) -q -g $(INSTALLER_DIR)/conf/comps-qubes.xml . iso-installer-lorax: - sed -e "s/%FCREL%/$(DIST_VER)/g" $(INSTALLER_DIR)/conf/dnf-lorax.repo.in > $(INSTALLER_DIR)/conf/dnf-lorax.repo + $(INSTALLER_DIR)/ksparser --ks $(INSTALLER_KICKSTART) --extract-repo-conf-to $(INSTALLER_DIR)/conf/dnf-lorax.repo $(LORAX) $(LORAX_OPTS) $(BASE_DIR)/os iso-installer-mkisofs: diff --git a/conf/dnf-lorax.repo.in b/conf/dnf-lorax.repo.in deleted file mode 100644 index 81007f2..0000000 --- a/conf/dnf-lorax.repo.in +++ /dev/null @@ -1,27 +0,0 @@ -[fedora] -name=Fedora %FCREL% - x86_64 -failovermethod=priority -#baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/%FCREL%/Everything/x86_64/os/ -metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-%FCREL%&arch=x86_64 -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-%FCREL%-x86_64 - -[updates] -name=Fedora %FCREL% - x86_64 - Updates -failovermethod=priority -#baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/%FCREL%/Everything/x86_64/ -metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f%FCREL%&arch=x86_64 -enabled=1 -gpgcheck=1 -gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-%FCREL%-x86_64 - -[installer] -name=installer -baseurl=file:///tmp/qubes-installer/yum/installer -enabled=1 - -[qubes-dom0] -name=qubes-dom0 -baseurl=file:///tmp/qubes-installer/yum/qubes-dom0 -enabled=1 diff --git a/ksparser b/ksparser new file mode 100755 index 0000000..41f4958 --- /dev/null +++ b/ksparser @@ -0,0 +1,62 @@ +#!/usr/bin/env python3 + +import argparse +import sys +import pungi.ks + +from jinja2 import Environment + +REPO_TEMPLATE = """ +[{{ks_repo.name}}] +name={{ks_repo.name}} +enabled=1 +{%- if ks_repo.baseurl %} +baseurl={{ks_repo.baseurl}} +{% endif -%} +{%- if ks_repo.metalink %} +metalink={{ks_repo.metalink}} +{%- endif -%} +{%- if ks_repo.gpgkey %} +gpgcheck=1 +gpgkey={{ks_repo.gpgkey}} +{% endif -%} +""" + + +def get_args(): + parser = argparse.ArgumentParser() + parser.add_argument( + "--ks", + metavar='PATH', + required=True + ) + parser.add_argument( + "--extract-repo-conf-to", + metavar='PATH', + required=False + ) + + return parser.parse_args() + + +def main(): + args = get_args() + if args.ks: + if args.extract_repo_conf_to: + ksparser = pungi.ks.get_ksparser(args.ks) + repo_content = '' + for ks_repo in ksparser.handler.repo.repoList: + repo_content += Environment().from_string(REPO_TEMPLATE).render( + ks_repo=ks_repo.__dict__) + + try: + with open(args.extract_repo_conf_to, 'w') as repo_fd: + repo_fd.write(repo_content) + except EnvironmentError: + print( + "Cannot write repo file to %s" % args.extract_repo_conf_to) + return 1 + + +if __name__ == '__main__': + sys.exit(main())