From 9e5f38f2c40890f64eacb5b3c037e7efb5d136c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eray=20=C3=96zkural?= Date: Fri, 24 Jun 2005 14:51:49 +0000 Subject: [PATCH] * pisi-updateindex tool'unu implement et(meye basla) --- cat-db.py | 16 ++++++++++++++++ pisi/index.py | 7 ++++++- pisi/packagedb.py | 10 +++++++--- 3 files changed, 29 insertions(+), 4 deletions(-) create mode 100755 cat-db.py diff --git a/cat-db.py b/cat-db.py new file mode 100755 index 00000000..ad4a08a5 --- /dev/null +++ b/cat-db.py @@ -0,0 +1,16 @@ +#! /usr/bin/python +# perform analysis on problem instances and store results in a database +# avoiding multiple invocations of the same instance + +import sys +import string +import bsddb.dbshelve as shelve +import os + +d = shelve.open( sys.argv[1] ) + +#print 'list serial time, db size ', len(d) +for (k,data) in d.iteritems(): + print k, data + +d.close() diff --git a/pisi/index.py b/pisi/index.py index 7bb05c4d..f1b73070 100644 --- a/pisi/index.py +++ b/pisi/index.py @@ -2,6 +2,7 @@ from package import Package from xmlfile import XmlFile import metadata +import packagedb from ui import ui import util from config import config @@ -24,7 +25,6 @@ class Index(XmlFile): self.unlink() - def write(self, filename): """Write index file""" self.newDOM() @@ -43,6 +43,11 @@ class Index(XmlFile): ui.info('Adding ' + fn + ' to package index\n') self.add_package(join(root, fn)) + def update_db(self): + packagedb.clear() + for pkg in self.packages: + packagedb.add_package(pkg) + def add_package(self, path): package = Package(path, 'r') # extract control files diff --git a/pisi/packagedb.py b/pisi/packagedb.py index 49ed1e21..2f590dd4 100644 --- a/pisi/packagedb.py +++ b/pisi/packagedb.py @@ -7,12 +7,16 @@ # yes, we are cheap import bsddb.dbshelve as shelve +import os import util from config import config util.check_dir(config.db_dir()) -d = shelve.open(config.db_dir() + '/package.bdb') +d = shelve.open( os.path.join(config.db_dir(), 'package.bdb') ) + +def clear(): + d.clear() def has_package(name): name = str(name) @@ -22,8 +26,8 @@ def get_package(name): name = str(name) return d[name] -def add_package(name, package_info): - name = str(name) +def add_package(package_info): + name = str(package_info.name) d[name] = package_info def remove_package(name):