summaryrefslogtreecommitdiffstats
path: root/doc/examples/checkstate.py
diff options
context:
space:
mode:
Diffstat (limited to 'doc/examples/checkstate.py')
-rwxr-xr-xdoc/examples/checkstate.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/doc/examples/checkstate.py b/doc/examples/checkstate.py
new file mode 100755
index 0000000..d4276e8
--- /dev/null
+++ b/doc/examples/checkstate.py
@@ -0,0 +1,37 @@
+#!/usr/bin/python3
+#
+#
+# this example is not usefull to find out about updated, upgradable packages
+# use the depcache.py example for it (because a pkgPolicy is not used here)
+#
+
+import apt_pkg
+
+apt_pkg.init()
+
+cache = apt_pkg.Cache()
+packages = cache.packages
+
+uninstalled, updated, upgradable = {}, {}, {}
+
+for package in packages:
+ versions = package.version_list
+ if not versions:
+ continue
+ version = versions[0]
+ for other_version in versions:
+ if apt_pkg.version_compare(version.ver_str, other_version.ver_str) < 0:
+ version = other_version
+ if package.current_ver:
+ current = package.current_ver
+ if apt_pkg.version_compare(current.ver_str, version.ver_str) < 0:
+ upgradable[package.name] = version
+ break
+ else:
+ updated[package.name] = current
+ else:
+ uninstalled[package.name] = version
+
+
+for line in (uninstalled, updated, upgradable):
+ print(list(line.items())[0])