summaryrefslogtreecommitdiff
path: root/doc/examples/checkstate.py
diff options
context:
space:
mode:
Diffstat (limited to 'doc/examples/checkstate.py')
-rwxr-xr-xdoc/examples/checkstate.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/doc/examples/checkstate.py b/doc/examples/checkstate.py
new file mode 100755
index 00000000..a0bdb6e7
--- /dev/null
+++ b/doc/examples/checkstate.py
@@ -0,0 +1,31 @@
+#!/usr/bin/python
+
+import apt_pkg
+apt_pkg.init()
+
+cache = apt_pkg.GetCache()
+packages = cache.Packages
+
+uninstalled, updated, upgradable = {}, {}, {}
+
+for package in packages:
+ versions = package.VersionList
+ if not versions:
+ continue
+ version = versions[0]
+ for other_version in versions:
+ if apt_pkg.VersionCompare(version.VerStr, other_version.VerStr)<0:
+ version = other_version
+ if package.CurrentVer:
+ current = package.CurrentVer
+ if apt_pkg.VersionCompare(current.VerStr, version.VerStr)<0:
+ upgradable[package.Name] = version
+ break
+ else:
+ updated[package.Name] = current
+ else:
+ uninstalled[package.Name] = version
+
+
+for l in (uninstalled, updated, upgradable):
+ print l.items()[0]