#! /usr/bin/python3

import re
import shutil
from urllib.parse import urlparse, urlunparse
from urllib.request import urlopen

import apt
from aptsources.distro import get_distro

cache = apt.Cache()
efilinux = cache["efilinux"].candidate
pool_parsed = urlparse(efilinux.uri)
dists_dir = "/dists/%s/main/uefi/efilinux-%s/current/" % (
    get_distro().codename, efilinux.architecture)

for base in "efilinux.efi.signed", "version":
    dists_parsed = list(pool_parsed)
    dists_parsed[2] = re.sub(r"/pool/.*", dists_dir + base, dists_parsed[2])
    dists_uri = urlunparse(dists_parsed)
    print("Downloading %s ..." % dists_uri)
    with urlopen(dists_uri) as dists, open(base, "wb") as out:
        shutil.copyfileobj(dists, out)
