From adb3635378bc1cf8654444653ed6f2f9a6f0b6b8 Mon Sep 17 00:00:00 2001 From: dlorenc Date: Mon, 30 Nov 2015 14:51:26 -0800 Subject: [PATCH] Allow utils.tar to take an existing file object. Signed-off-by: dlorenc --- docker/utils/utils.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/docker/utils/utils.py b/docker/utils/utils.py index 560ee8e2..b6d7b18f 100644 --- a/docker/utils/utils.py +++ b/docker/utils/utils.py @@ -74,9 +74,10 @@ def decode_json_header(header): return json.loads(data) -def tar(path, exclude=None, dockerfile=None): - f = tempfile.NamedTemporaryFile() - t = tarfile.open(mode='w', fileobj=f) +def tar(path, exclude=None, dockerfile=None, fileobj=None): + if not fileobj: + fileobj = tempfile.NamedTemporaryFile() + t = tarfile.open(mode='w', fileobj=fileobj) root = os.path.abspath(path) exclude = exclude or [] @@ -85,8 +86,8 @@ def tar(path, exclude=None, dockerfile=None): t.add(os.path.join(root, path), arcname=path, recursive=False) t.close() - f.seek(0) - return f + fileobj.seek(0) + return fileobj def exclude_paths(root, patterns, dockerfile=None):