fix #1980
This commit is contained in:
+30
-10
@@ -16,11 +16,14 @@ import zipfile
|
|||||||
|
|
||||||
def openZip(fileName):
|
def openZip(fileName):
|
||||||
if not zipfile.is_zipfile(fileName):
|
if not zipfile.is_zipfile(fileName):
|
||||||
print "ZIP file required..."
|
usage("ZIP file required...")
|
||||||
sys.exit()
|
|
||||||
else:
|
f = zipfile.ZipFile(fileName, "r")
|
||||||
f = zipfile.ZipFile(fileName, "r")
|
|
||||||
|
if [True for file in f.namelist() if file == "files.xml"]:
|
||||||
return f
|
return f
|
||||||
|
else:
|
||||||
|
usage("'%s' is not a PiSi package" % (fileName))
|
||||||
|
|
||||||
def fillFileList(zipFile):
|
def fillFileList(zipFile):
|
||||||
filelist = []
|
filelist = []
|
||||||
@@ -33,9 +36,23 @@ def fillFileList(zipFile):
|
|||||||
|
|
||||||
def uniq(alist):
|
def uniq(alist):
|
||||||
set = {}
|
set = {}
|
||||||
return [set.setdefault(e,e) for e in alist if e not in set]
|
return [set.setdefault(e, e) for e in alist if e not in set]
|
||||||
|
|
||||||
if __name__ == "__main__":
|
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":
|
if sys.argv[1] == "dirs":
|
||||||
f = openZip(sys.argv[2])
|
f = openZip(sys.argv[2])
|
||||||
@@ -45,13 +62,16 @@ if __name__ == "__main__":
|
|||||||
|
|
||||||
for dir in uniq(dirlist):
|
for dir in uniq(dirlist):
|
||||||
print "<Path fileType=\"\">" + dir.replace("install/", "/") + "</Path>"
|
print "<Path fileType=\"\">" + dir.replace("install/", "/") + "</Path>"
|
||||||
elif sys.argv[1]:
|
|
||||||
|
else:
|
||||||
f = openZip(sys.argv[1])
|
f = openZip(sys.argv[1])
|
||||||
for file in fillFileList(f):
|
for file in fillFileList(f):
|
||||||
if f.getinfo(file).external_attr == 2716663808:
|
if f.getinfo(file).external_attr == 2716663808:
|
||||||
print file + " --> " + f.read(file)
|
print file + " --> " + f.read(file)
|
||||||
else:
|
else:
|
||||||
print file
|
print file
|
||||||
else:
|
|
||||||
print "pisi file name required..."
|
return 0
|
||||||
sys.exit()
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sys.exit(main())
|
||||||
|
|||||||
Reference in New Issue
Block a user