diff --git a/pisi/cli/commands.py b/pisi/cli/commands.py index 6a96650a..25380a7a 100644 --- a/pisi/cli/commands.py +++ b/pisi/cli/commands.py @@ -625,7 +625,7 @@ Usage: info ... def __init__(self): super(Info, self).__init__() - name = ("info", "i") + name = ("info") def options(self): self.parser.add_option("-f", "--files", action="store_true", diff --git a/scripts/lspisi b/scripts/lspisi index 117dca89..894c54aa 100755 --- a/scripts/lspisi +++ b/scripts/lspisi @@ -10,68 +10,19 @@ # # Please read the COPYING file. -import os import sys -import zipfile - -def openZip(fileName): - if not zipfile.is_zipfile(fileName): - usage("ZIP file required...") - - f = zipfile.ZipFile(fileName, "r") - - if [True for file in f.namelist() if file == "files.xml"]: - return f - else: - usage("'%s' is not a PiSi package" % (fileName)) - -def fillFileList(zipFile): - filelist = [] - - for file in zipFile.namelist(): - filelist.append(file) - - filelist.sort() - return filelist - -def uniq(alist): - set = {} - return [set.setdefault(e, e) for e in alist if e not in set] - -def usage(errmsg): - print """ - Error: %s - - Usage: - lspisi PiSi_package.PiSi (lists the content of package) - lspisi dirs PiSi_package.PiSi (lists directories in the package for the package developer) - """ % (errmsg) - - sys.exit(1) - -def main(): - - if len(sys.argv) < 2 or ("dirs" in sys.argv and len(sys.argv) < 3): - usage("PiSi package required..") - - if sys.argv[1] == "dirs": - f = openZip(sys.argv[2]) - dirlist =[] - for file in fillFileList(f): - dirlist.append(os.path.dirname(file)) - - for dir in uniq(dirlist): - print "" + dir.replace("install/", "/") + "" - - else: - f = openZip(sys.argv[1]) - for file in fillFileList(f): - if f.getinfo(file).external_attr == 2716663808: - print file + " --> " + f.read(file) - else: - print file +import pisi +def show_info(filename): + pisi.api.init(database=False) + metadata, files = pisi.api.info_file(filename) + paths = [fileinfo.path for fileinfo in files.list] + paths.sort() + for path in paths: + print '/' + path + pisi.api.finalize() return 0 if __name__ == "__main__": - sys.exit(main()) + for x in sys.argv[1:]: + show_info(x)