diff options
Diffstat (limited to 'debian/tests/get_default_release.py')
-rwxr-xr-x | debian/tests/get_default_release.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/debian/tests/get_default_release.py b/debian/tests/get_default_release.py new file mode 100755 index 0000000..5fbde91 --- /dev/null +++ b/debian/tests/get_default_release.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 + +import platform +import sys + +import apt_pkg + +os_release = platform.freedesktop_os_release() +if os_release["ID"] != "debian" and os_release.get("VERSION_CODENAME"): + print(os_release["VERSION_CODENAME"]) + sys.exit(0) + +apt_pkg.init() +c = apt_pkg.Cache(None) +d = apt_pkg.DepCache(c) +s = apt_pkg.SourceList() +s.read_main_list() + +highest_prio = -1 +highest_archive = None +for pkgfile, _ in d.get_candidate_ver(c["base-files"]).file_list: + print("processing: %s" % pkgfile, file=sys.stderr) + index = s.find_index(pkgfile) + if index is None: + print("index is none -- skipping", file=sys.stderr) + continue + if not index.is_trusted: + print("index is not trusted -- skipping", file=sys.stderr) + continue + archive = pkgfile.archive + if archive not in ["stable", "testing", "unstable"]: + print("index archive %s is %s -- skipping" % (index, archive), file=sys.stderr) + continue + prio = d.policy.get_priority(pkgfile) + if prio > highest_prio: + highest_prio = prio + highest_archive = archive +if highest_archive is None: + print( + "highest priority apt archive is neither stable, testing or unstable", + file=sys.stderr, + ) + for f in c.file_list: + print("========================", file=sys.stderr) + for a in [ + "architecture", + "archive", + "codename", + "component", + "filename", + "id", + "index_type", + "label", + "not_automatic", + "not_source", + "origin", + "site", + "size", + "version", + ]: + print("%s: %s" % (a, getattr(f, a, None)), file=sys.stderr) + print("priority: ", d.policy.get_priority(f), file=sys.stderr) + exit(1) +print("highest archive priority: %s" % highest_archive, file=sys.stderr) +print(highest_archive) |