#!/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())