def detect_linux_distro()

in linux/install_gpu_driver.py [0:0]


def detect_linux_distro() -> (System, str):
    """
    Checks the /etc/os-release file to figure out what distribution of OS
    we're running.
    """
    with open("/etc/os-release") as os_release:
        lines = [line.strip() for line in os_release.readlines() if line.strip() != ""]
        info = {
            k: v.strip("'\"")
            for k, v in (line.split("=", maxsplit=1) for line in lines)
        }

    name = info["NAME"]

    if name.startswith("Debian"):
        system = System.Debian
        version = info["VERSION"].split()[0]  # 11 (rodete) -> 11
    elif name.startswith("CentOS"):
        system = System.CentOS
        version = info["VERSION_ID"]  # 8
    elif name.startswith("Rocky"):
        system = System.Rocky
        version = info["VERSION_ID"]  # 8.4
    elif name.startswith("Ubuntu"):
        system = System.Ubuntu
        version = info["VERSION_ID"]  # 20.04
    elif name.startswith("SLES"):
        system = System.SUSE
        version = info["VERSION_ID"]  # 15.3
    elif name.startswith("Red Hat"):
        system = System.RHEL
        version = info["VERSION_ID"]  # 8.4
    elif name.startswith("Fedora"):
        system = System.Fedora
        version = info["VERSION_ID"]  # 34
    else:
        raise RuntimeError("Unrecognized operating system.")
    return system, version