#!/usr/bin/python3
"""
Download packages via dnf
"""
import json
import sys
SCHEMA = """
"additionalProperties": true
"""
def main(options, sources, secrets):
repos = options.get("repos", {})
repo_secrets = secrets.get("repos", {})
reply = []
for checksum in sources:
try:
source_repo = repos[checksum]
source_repo_secrets = repo_secrets.get(checksum, {})
except KeyError:
json.dump({"error": f"source unknown: {checksum}"}, sys.stdout)
return 1
repo = {"checksum": checksum}
if "baseurl" in source_repo:
repo["baseurl"] = source_repo["baseurl"]
elif "mirrorlist" in source_repo:
repo["mirrorlist"] = source_repo["mirrorlist"]
elif "metalink" in source_repo:
repo["metalink"] = source_repo["metalink"]
else:
json.dump({"error": f"repo {checksum} is missing baseurl, mirrorlist, or metalink key"}, sys.stdout)
if "sslcacert" in source_repo:
repo["sslcacert"] = source_repo["sslcacert"]
if "gpgkey" in source_repo:
repo["gpgkey"] = source_repo["gpgkey"]
if "sslclientcert" in source_repo_secrets:
repo["sslclientcert"] = source_repo_secrets["sslclientcert"]
if "sslclientkey" in source_repo_secrets:
repo["sslclientkey"] = source_repo_secrets["sslclientkey"]
reply.append(repo)
json.dump(reply, sys.stdout)
return 0
if __name__ == '__main__':
args = json.load(sys.stdin)
r = main(args["options"], args["checksums"], args.get("secrets", {}))
sys.exit(r)