* indexing tool'unu implement et

This commit is contained in:
Eray Özkural
2005-06-24 14:31:43 +00:00
parent 8353808532
commit 2bc5fe52f3
2 changed files with 50 additions and 1 deletions
+5 -1
View File
@@ -6,7 +6,7 @@ import sys
from optparse import OptionParser
#sys.path.append("./lib")
import pisi.install
from pisi.index import Index
import pisi.util
from pisi.ui import ui
@@ -38,5 +38,9 @@ def main():
ui.info('* Building index of PISI files under ' + repo_dir + '\n')
index = Index()
index.index(repo_dir)
index.write('pisi-index.xml')
if __name__ == "__main__":
main()
+45
View File
@@ -0,0 +1,45 @@
from package import Package
from xmlfile import XmlFile
import metadata
from ui import ui
import util
from config import config
class Index(XmlFile):
def __init__(self):
XmlFile.__init__(self,"PISI")
self.sources = []
self.packages = []
def write(self, filename):
"""Write index file"""
self.newDOM()
for pkg in self.packages:
self.addChild(pkg.elt(self))
self.writexml(filename)
def index(self, repo_dir):
import os
from os.path import join, getsize
for root, dirs, files in os.walk(repo_dir):
for fn in files:
if fn.endswith('.pisi'):
ui.info('Adding ' + fn + ' to package index\n')
self.add_package(join(root, fn))
def add_package(self, path):
package = Package(path, 'r')
# extract control files
util.clean_dir(config.install_dir())
package.extract_PISI_files(config.install_dir())
md = metadata.MetaData()
md.read(config.install_dir() + '/metadata.xml')
# check package semantics
if md.verify():
self.packages.append(md.package)
else:
ui.error('Package ' + fn + ' metadata corrupt\n')