diff --git a/pisi/cli/commands.py b/pisi/cli/commands.py index 6320ec0b..7c5bac91 100644 --- a/pisi/cli/commands.py +++ b/pisi/cli/commands.py @@ -435,7 +435,7 @@ Usage: info ... self.help() return - self.init() + self.init(True) for arg in self.args: self.printinfo(arg) self.finalize() @@ -446,13 +446,16 @@ Usage: info ... metadata, files = pisi.toplevel.info(arg) print metadata.package if self.options.files or self.options.files_path: - print - print 'Files:' - for fileinfo in files.list: - if self.options.files: - print fileinfo - else: - print fileinfo.path + if files: + print + print 'Files:' + for fileinfo in files.list: + if self.options.files: + print fileinfo + else: + print fileinfo.path + else: + print 'File information not available' class Index(Command): diff --git a/pisi/toplevel.py b/pisi/toplevel.py index 3c6a121a..92225035 100644 --- a/pisi/toplevel.py +++ b/pisi/toplevel.py @@ -358,6 +358,7 @@ def info_file(package): return package.metadata, package.files def info_name(package_name): + """fetch package information for a package""" if packagedb.has_package(package_name): package = packagedb.get_package(package_name) from pisi.metadata import MetaData @@ -365,10 +366,14 @@ def info_name(package_name): metadata.package = package #FIXME: get it from sourcedb metadata.source = None - files = installdb.files(package.name) + #TODO: fetch the files from server if possible + if installdb.is_installed(package.name): + files = installdb.files(package.name) + else: + files = None return metadata, files else: - raise Error('Package %s not installed' % package_name) + raise Error('Package %s not found' % package_name) def index(repo_dir = '.'):