Commit 3e774fed by Timothy Appnel Committed by Michael DeHaan

Modified assemble module so the dest file is streamed together rather than…

Modified assemble module so the dest file is streamed together rather than built-in memory before writing.
parent 1f8d3197
...@@ -67,22 +67,18 @@ author: Stephen Fromm ...@@ -67,22 +67,18 @@ author: Stephen Fromm
''' '''
# =========================================== # ===========================================
# Support methods # Support method
def assemble_from_fragments(path): def assemble_from_fragments(src_path):
''' assemble a file from a directory of fragments ''' ''' assemble a file from a directory of fragments '''
assembled = [] tmpfd, temp_path = tempfile.mkstemp()
for f in sorted(os.listdir(path)): tmp = os.fdopen(tmpfd,'w')
fragment = "%s/%s" % (path, f) for f in sorted(os.listdir(src_path)):
fragment = "%s/%s" % (src_path, f)
if os.path.isfile(fragment): if os.path.isfile(fragment):
assembled.append(file(fragment).read()) tmp.write(file(fragment).read())
return "".join(assembled) tmp.close()
return temp_path
def write_temp_file(data):
fd, path = tempfile.mkstemp()
os.write(fd, data)
os.close(fd)
return path
# ============================================================== # ==============================================================
# main # main
...@@ -112,7 +108,7 @@ def main(): ...@@ -112,7 +108,7 @@ def main():
if not os.path.isdir(src): if not os.path.isdir(src):
module.fail_json(msg="Source (%s) is not a directory" % src) module.fail_json(msg="Source (%s) is not a directory" % src)
path = write_temp_file(assemble_from_fragments(src)) path = assemble_from_fragments(src)
pathmd5 = module.md5(path) pathmd5 = module.md5(path)
if os.path.exists(dest): if os.path.exists(dest):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment