#!/usr/bin/python3 import fnmatch import logging 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 if fnmatch.fnmatch(pkg.name, "oem-*-meta") and pkg.is_installed ) # 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.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)
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
apt-cdrom-check | File | 2.39 KB | 0755 |
|
apt-check | File | 18.35 KB | 0755 |
|
apt_check.py | File | 18.35 KB | 0755 |
|
backend_helper.py | File | 4.77 KB | 0755 |
|
cddistupgrader | File | 619 B | 0755 |
|
distro-cd-updater | File | 14.15 KB | 0755 |
|
list-oem-metapackages | File | 1.29 KB | 0755 |
|
livepatch-notification | File | 22.15 KB | 0755 |
|
local-avahi-notification | File | 14.15 KB | 0755 |
|
package-data-downloader | File | 11.83 KB | 0755 |
|
package-system-locked | File | 358 B | 0755 |
|
system-crash-notification | File | 14.15 KB | 0755 |
|
update-motd-fsck-at-reboot | File | 2.79 KB | 0755 |
|
update-motd-hwe-eol | File | 1.81 KB | 0755 |
|
update-motd-reboot-required | File | 115 B | 0755 |
|
update-motd-updates-available | File | 1.47 KB | 0755 |
|
update-notifier-crash | File | 513 B | 0755 |
|