* fix: autoxml: do not intialize XmlFile at all. works somehow!
* fix: do not fail indexing and installation when components are not present - blank component created if not present - updated with description etc. later - call the command update_component rather than add_component suitably * add reverse dependencies to info command
This commit is contained in:
@@ -21,7 +21,9 @@ import pisi
|
||||
import pisi.cli
|
||||
import pisi.context as ctx
|
||||
from pisi.uri import URI
|
||||
|
||||
import pisi.util as util
|
||||
import pisi.api as api
|
||||
import pisi.packagedb as packagedb
|
||||
|
||||
class Error(pisi.Error):
|
||||
pass
|
||||
@@ -536,6 +538,8 @@ Usage: info <package1> <package2> ... <packagen>
|
||||
|
||||
metadata, files = pisi.api.info(arg)
|
||||
ctx.ui.info(unicode(metadata.package))
|
||||
revdeps = [x[0] for x in packagedb.get_rev_deps(arg)]
|
||||
ctx.ui.info( _('Reverse Dependencies: ') + util.strlist(revdeps) )
|
||||
if self.options.files or self.options.files_path:
|
||||
if files:
|
||||
ctx.ui.info(_('\nFiles:'))
|
||||
|
||||
+6
-3
@@ -91,6 +91,8 @@ class ComponentDB(object):
|
||||
return self.d.has_key(name)
|
||||
|
||||
def get_component(self, name):
|
||||
if not self.has_component(name):
|
||||
self.d[name] = Component(name = name)
|
||||
return self.d[name]
|
||||
|
||||
def list_components(self):
|
||||
@@ -99,12 +101,13 @@ class ComponentDB(object):
|
||||
list.append(pkg)
|
||||
return list
|
||||
|
||||
def add_component(self, component):
|
||||
def update_component(self, component):
|
||||
if self.d.has_key(component.name):
|
||||
# preserve the list of packages
|
||||
component.packages = self.d[component.name].packages
|
||||
self.d[component.name] = component
|
||||
|
||||
def add_package(self, component_name, package):
|
||||
if not self.has_component(component_name):
|
||||
raise Error(_('Information for component %s not available') % component_name)
|
||||
component = self.get_component(component_name)
|
||||
component.packages.append(package)
|
||||
self.d[component_name] = component # update
|
||||
|
||||
+1
-1
@@ -80,7 +80,7 @@ class Index(XmlFile):
|
||||
pkgdb = packagedb.get_db(repo)
|
||||
pkgdb.clear()
|
||||
for comp in self.components:
|
||||
ctx.componentdb.add_component(comp)
|
||||
ctx.componentdb.update_component(comp)
|
||||
for pkg in self.packages:
|
||||
pkgdb.add_package(pkg)
|
||||
|
||||
|
||||
@@ -306,7 +306,8 @@ class autoxml(oo.autosuper, oo.autoprop):
|
||||
#XmlFile.__init__(self, tag = tag)
|
||||
#workaround: init only top level xmlfile, not the parts
|
||||
if not args.has_key('tag'):
|
||||
XmlFile.__init__(self, tag = cls.tag)
|
||||
#XmlFile.__init__(self, tag = cls.tag)
|
||||
pass # disable xmlfile support in constructor entirely!
|
||||
for base in cls.autoxml_bases:
|
||||
base.__init__(self)
|
||||
#super(cls, self).__init__(tag = tag) cooperative shit disabled for now
|
||||
|
||||
Reference in New Issue
Block a user