app pack custom

This commit is contained in:
mdipierro
2013-04-02 11:12:40 -05:00
parent 7714b5dc7b
commit 07e809acb3
6 changed files with 71 additions and 11 deletions
+3 -3
View File
@@ -43,7 +43,7 @@ def apath(path='', r=None):
return os.path.join(opath, path).replace('\\', '/')
def app_pack(app, request, raise_ex=False):
def app_pack(app, request, raise_ex=False, filenames=None):
"""
Builds a w2p package for the application
@@ -60,9 +60,9 @@ def app_pack(app, request, raise_ex=False):
filename of the w2p file or None on error
"""
try:
app_cleanup(app, request)
if filenames is None: app_cleanup(app, request)
filename = apath('../deposit/web2py.app.%s.w2p' % app, request)
w2p_pack(filename, apath(app, request))
w2p_pack(filename, apath(app, request), filenames=filenames)
return filename
except Exception, e:
if raise_ex:
+6 -5
View File
@@ -223,19 +223,20 @@ def _extractall(filename, path='.', members=None):
return ret
def tar(file, dir, expression='^.+$'):
def tar(file, dir, expression='^.+$', filenames=None):
"""
tars dir into file, only tars file that match expression
"""
tar = tarfile.TarFile(file, 'w')
try:
for file in listdir(dir, expression, add_dirs=True):
if filenames is None:
filenames = listdir(dir, expression, add_dirs=True)
for file in filenames:
tar.add(os.path.join(dir, file), file, False)
finally:
tar.close()
def untar(file, dir):
"""
untar file into dir
@@ -244,14 +245,14 @@ def untar(file, dir):
_extractall(file, dir)
def w2p_pack(filename, path, compiled=False):
def w2p_pack(filename, path, compiled=False, filenames=None):
filename = abspath(filename)
path = abspath(path)
tarname = filename + '.tar'
if compiled:
tar_compiled(tarname, path, '^[\w\.\-]+$')
else:
tar(tarname, path, '^[\w\.\-]+$')
tar(tarname, path, '^[\w\.\-]+$', filenames=filenames)
w2pfp = gzopen(filename, 'wb')
tarfp = open(tarname, 'rb')
w2pfp.write(tarfp.read())