From 612d21865b09ac0608a1a350f06f13e3ba46a2f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=2E=C3=87a=C4=9Flar=20Onur?= Date: Thu, 25 May 2006 12:03:08 +0000 Subject: [PATCH] =?UTF-8?q?dirs=20geri=20gel=20(refactor=20ederken=20dikka?= =?UTF-8?q?t=20l=C3=BCtfen...)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/lspisi | 47 +++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/scripts/lspisi b/scripts/lspisi index 894c54aa..394a214d 100755 --- a/scripts/lspisi +++ b/scripts/lspisi @@ -1,7 +1,7 @@ #!/usr/bin/python # -*- coding: utf-8 -*- # -# Copyright (C) 2005, TUBITAK/UEKAE +# Copyright (C) 2006, TUBITAK/UEKAE # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License as published by the Free @@ -10,19 +10,50 @@ # # Please read the COPYING file. +import os import sys import pisi def show_info(filename): - pisi.api.init(database=False) + pisi.api.init(database=False, comar=False) metadata, files = pisi.api.info_file(filename) + pisi.api.finalize() + paths = [fileinfo.path for fileinfo in files.list] paths.sort() - for path in paths: - print '/' + path - pisi.api.finalize() - return 0 + return paths + +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": + dirlist = [] + for file in show_info(sys.argv[2]): + dirlist.append(os.path.dirname(file)) + + for dir in uniq(dirlist): + print "%s" % dir + + else: + for file in show_info(sys.argv[1]): + print "/%s" % file if __name__ == "__main__": - for x in sys.argv[1:]: - show_info(x) + sys.exit(main())