1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#!/usr/bin/python
import apt
import os
import sys
import xapian
sys.path.insert(0, "../")
from softwarecenter.enums import XAPIAN_VALUE_PKGNAME, XAPIAN_VALUE_APPNAME, XAPIAN_VALUE_SUMMARY
from softwarecenter.paths import XAPIAN_BASE_PATH
if __name__ == "__main__":
cache = apt.Cache()
pathname = os.path.join(XAPIAN_BASE_PATH, "xapian")
db = xapian.Database(pathname)
installed = []
for m in db.postlist(""):
doc = db.get_document(m.docid)
pkgname = doc.get_value(XAPIAN_VALUE_PKGNAME)
appname = doc.get_value(XAPIAN_VALUE_APPNAME)
summary = doc.get_value(XAPIAN_VALUE_SUMMARY)
if pkgname in cache and cache[pkgname].is_installed:
installed.append("%s: %s [%s]" % (appname, summary, pkgname))
print "\n".join(sorted(installed,
cmp=lambda x, y: cmp(x.split(":")[0].lower(),
y.split(":")[0].lower())))
|