#! /usr/bin/env python3 """Mirror local Incus.""" from pathlib import Path import os from rwx.fs import make_directory, wipe ROOT = "https://images.linuxcontainers.org" IMAGES = f"{ROOT}/images" META = f"{ROOT}/meta" STREAMS = f"{META}/simplestreams/v1" TYPE = ( "default", ) TYPES = ( "default", "cloud", ) ARCHITECTURES_TYPE = { "amd64": TYPE, "arm64": TYPE, } ARCHITECTURES_TYPES = { "amd64": TYPES, "arm64": TYPES, } EL = { "9": ARCHITECTURES_TYPES, "8": ARCHITECTURES_TYPES, } PROFILE = { "almalinux": EL, "alpine": { "3.21": ARCHITECTURES_TYPES, "3.20": ARCHITECTURES_TYPES, }, "archlinux": { "current": { "amd64": TYPES, "arm64": TYPES, }, }, "debian": { "bookworm": ARCHITECTURES_TYPES, "bullseye": ARCHITECTURES_TYPES, }, "fedora": { "42": ARCHITECTURES_TYPES, "41": ARCHITECTURES_TYPES, }, "nixos": { "24.11": ARCHITECTURES_TYPE, }, "opensuse": { "15.6": ARCHITECTURES_TYPES, "15.5": ARCHITECTURES_TYPE, }, "rockylinux": EL, "ubuntu": { "noble": ARCHITECTURES_TYPES, "jammy": ARCHITECTURES_TYPES, }, } def main() -> None: root = Path(__file__).resolve().parent / "root" # root path root = root / "incus" wipe(root) make_directory(root) # symlink (root / "streams").symlink_to(os.sep.join(["meta", "simplestreams"])) # meta meta = root / "meta" # streams streams = meta / "simplestreams" / "v1" make_directory(streams) # images streams = root / "images" if __name__ == "__main__": main()