%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /lib/update-notifier/
Upload File :
Create Path :
Current File : //lib/update-notifier/list-oem-metapackages

#!/usr/bin/python3

import fnmatch
import os
import sys

import apt
import UbuntuDrivers.detect
from gi.repository import GLib

import apt_pkg

STAMP_FILE = os.path.join(
    GLib.get_user_runtime_dir(), "ubuntu-drivers-oem.package-list"
)


def any_oem_metapackages_installed(cache):
    installed_oem_packages = (
        pkg
        for pkg in cache.packages
        if fnmatch.fnmatch(pkg.name, "oem-*-meta") and pkg.current_ver
    )

    # Empty if there are no installed OEM packages
    return any((True for _ in installed_oem_packages))


def write_oem_metapackage_list(cache, filename):
    packages = UbuntuDrivers.detect.system_device_specific_metapackages(
        apt_cache=cache
    )

    if not packages:
        return

    with open(STAMP_FILE, "w") as f:
        f.write("\n".join(packages))


if __name__ == "__main__":
    if os.path.exists(STAMP_FILE):
        sys.exit(0)

    try:
        cache = apt_pkg.Cache()
    except apt_pkg.Error:  # broken things in sources.list, or corrupted list files
        print(
            "ERROR: Can't look into APT cache. Check your sources.list file(s), run `apt update` and try again",
            file=sys.stderr,
        )
        sys.exit(0)

    if any_oem_metapackages_installed(cache):
        sys.exit(0)

    write_oem_metapackage_list(cache, STAMP_FILE)

Zerion Mini Shell 1.0