Linux lhjmq-records 5.15.0-118-generic #128-Ubuntu SMP Fri Jul 5 09:28:59 UTC 2024 x86_64
Your IP : 3.145.196.141
Current Path : /lib/update-notifier/ |
| 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)
|