123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- #
- # Main fork Pisi: Copyright (C) 2005 - 2011, Tubitak/UEKAE
- #
- # Copyright (C) 2018, Suleyman POYRAZ (Zaryob)
- #
- # 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
- # Software Foundation; either version 2 of the License, or (at your option)
- # any later version.
- #
- # Please read the COPYING file.
- import os
- import sys
- import inary.api
- def show_info(filename):
- metadata, files = inary.api.info_file(filename)
- paths = [fileinfo.path for fileinfo in files.list]
- paths.sort()
- 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:
- lsinary INARY_package.INARY (lists the content of package)
- lsinary dirs INARY_package.INARY (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("INARY 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(("<Path fileType=\"\">/%s</Path>" % dir))
- elif not os.path.exists(sys.argv[1]):
- print("File %s not found" % sys.argv[1])
- else:
- for file in show_info(sys.argv[1]):
- print(("/%s" % file))
- if __name__ == "__main__":
- sys.exit(main())
|