* make info/search show installed packages as well, phew
This commit is contained in:
+8
-4
@@ -232,17 +232,21 @@ def info_file(package_fn):
|
|||||||
package.read()
|
package.read()
|
||||||
return package.metadata, package.files
|
return package.metadata, package.files
|
||||||
|
|
||||||
def info_name(package_name):
|
def info_name(package_name, installed=False):
|
||||||
"""fetch package information for a package"""
|
"""fetch package information for a package"""
|
||||||
if packagedb.has_package(package_name):
|
if installed:
|
||||||
package = packagedb.get_package(package_name)
|
pkgdb = packagedb.inst_packagedb
|
||||||
|
else:
|
||||||
|
pkgdb = packagedb
|
||||||
|
if pkgdb.has_package(package_name):
|
||||||
|
package = pkgdb.get_package(package_name)
|
||||||
from pisi.metadata import MetaData
|
from pisi.metadata import MetaData
|
||||||
metadata = MetaData()
|
metadata = MetaData()
|
||||||
metadata.package = package
|
metadata.package = package
|
||||||
#FIXME: get it from sourcedb
|
#FIXME: get it from sourcedb
|
||||||
metadata.source = None
|
metadata.source = None
|
||||||
#TODO: fetch the files from server if possible
|
#TODO: fetch the files from server if possible
|
||||||
if ctx.installdb.is_installed(package.name):
|
if installed and ctx.installdb.is_installed(package.name):
|
||||||
files = ctx.installdb.files(package.name)
|
files = ctx.installdb.files(package.name)
|
||||||
else:
|
else:
|
||||||
files = None
|
files = None
|
||||||
|
|||||||
+24
-6
@@ -513,6 +513,8 @@ class Info(Command):
|
|||||||
|
|
||||||
Usage: info <package1> <package2> ... <packagen>
|
Usage: info <package1> <package2> ... <packagen>
|
||||||
|
|
||||||
|
<packagei> is either a package name or a .pisi file,
|
||||||
|
|
||||||
"""
|
"""
|
||||||
__metaclass__ = autocommand
|
__metaclass__ = autocommand
|
||||||
|
|
||||||
@@ -542,16 +544,31 @@ Usage: info <package1> <package2> ... <packagen>
|
|||||||
component = ctx.componentdb.get_component(arg)
|
component = ctx.componentdb.get_component(arg)
|
||||||
#if self.options.long:
|
#if self.options.long:
|
||||||
ctx.ui.info(unicode(component))
|
ctx.ui.info(unicode(component))
|
||||||
else: # then assume it was a package
|
else: # then assume it was a package
|
||||||
self.printinfo_package(arg)
|
info_package(arg)
|
||||||
self.finalize()
|
self.finalize()
|
||||||
|
|
||||||
def printinfo_package(self, arg):
|
|
||||||
|
def info_package(self, arg):
|
||||||
|
if arg.endswith(ctx.const.package_suffix):
|
||||||
|
metadata, files = pisi.api.info_file(arg)
|
||||||
|
ctx.ui.info(_('Package file: %s') % arg)
|
||||||
|
self.print_pkginfo(metadata, files)
|
||||||
|
else:
|
||||||
|
if ctx.installdb.is_installed(arg, True):
|
||||||
|
metadata, files = pisi.api.info_name(arg)
|
||||||
|
ctx.ui.info(_('Installed package:'))
|
||||||
|
self.print_pkginfo(metadata, files)
|
||||||
|
if packagedb.has_package(arg):
|
||||||
|
metadata, files = pisi.api.info_name(arg, False)
|
||||||
|
ctx.ui.info(_('Package found in repository:'))
|
||||||
|
self.print_pkginfo(metadata, files)
|
||||||
|
|
||||||
|
def print_pkginfo(self, metadata, files):
|
||||||
import os.path
|
import os.path
|
||||||
|
|
||||||
metadata, files = pisi.api.info(arg)
|
|
||||||
ctx.ui.info(unicode(metadata.package))
|
ctx.ui.info(unicode(metadata.package))
|
||||||
revdeps = [x[0] for x in packagedb.get_rev_deps(arg)]
|
revdeps = [x[0] for x in packagedb.get_rev_deps(metadata.package.name)]
|
||||||
print _('Reverse Dependencies:'), util.strlist(revdeps)
|
print _('Reverse Dependencies:'), util.strlist(revdeps)
|
||||||
if self.options.files or self.options.files_path:
|
if self.options.files or self.options.files_path:
|
||||||
if files:
|
if files:
|
||||||
@@ -563,6 +580,7 @@ Usage: info <package1> <package2> ... <packagen>
|
|||||||
print fileinfo.path
|
print fileinfo.path
|
||||||
else:
|
else:
|
||||||
ctx.ui.warning(_('File information not available'))
|
ctx.ui.warning(_('File information not available'))
|
||||||
|
print
|
||||||
|
|
||||||
|
|
||||||
class Check(Command):
|
class Check(Command):
|
||||||
@@ -1013,7 +1031,7 @@ Finds a package in repository containing specified search terms
|
|||||||
r = pisi.api.search_package_terms(self.args, self.get_lang())
|
r = pisi.api.search_package_terms(self.args, self.get_lang())
|
||||||
|
|
||||||
for pkg in r:
|
for pkg in r:
|
||||||
self.printinfo_package(pkg)
|
self.info_package(pkg)
|
||||||
|
|
||||||
self.finalize()
|
self.finalize()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user