2015-09-21 19:53:37 +00:00
|
|
|
#!/usr/bin/env python
|
2016-10-21 16:21:54 +00:00
|
|
|
# -*- coding: utf-8 -*-
|
2017-07-03 19:55:03 +00:00
|
|
|
import StringIO, zipfile, os.path, imp, sys, os
|
2015-09-21 19:53:37 +00:00
|
|
|
import marshal
|
2016-11-26 09:20:33 +00:00
|
|
|
import pylzma
|
|
|
|
import struct
|
2015-09-21 19:53:37 +00:00
|
|
|
|
2017-07-03 19:55:03 +00:00
|
|
|
def get_encoded_library_string(filepath):
|
|
|
|
dest = os.path.dirname(filepath)
|
|
|
|
if not os.path.exists(dest):
|
|
|
|
os.makedirs(dest)
|
2016-10-21 16:21:54 +00:00
|
|
|
|
2015-09-21 19:53:37 +00:00
|
|
|
f = StringIO.StringIO()
|
2017-07-03 19:55:03 +00:00
|
|
|
f.write(open(filepath, 'rb').read())
|
2015-09-21 19:53:37 +00:00
|
|
|
|
|
|
|
zip = zipfile.ZipFile(f)
|
|
|
|
|
2016-10-21 16:21:54 +00:00
|
|
|
modules = dict([
|
|
|
|
(z.filename, zip.open(z.filename,).read()) for z in zip.infolist() \
|
|
|
|
if os.path.splitext(z.filename)[1] in [
|
2016-10-22 15:40:11 +00:00
|
|
|
'.py', '.pyd', '.dll', '.pyc', '.pyo', '.so'
|
2016-10-21 16:21:54 +00:00
|
|
|
]
|
|
|
|
])
|
2015-09-21 19:53:37 +00:00
|
|
|
|
2016-11-29 16:53:39 +00:00
|
|
|
return marshal.dumps(modules)
|
2016-10-21 16:21:54 +00:00
|
|
|
|
2017-07-03 19:55:03 +00:00
|
|
|
with open(sys.argv[1],'wb') as w:
|
|
|
|
w.write(get_encoded_library_string(sys.argv[2]))
|