summaryrefslogtreecommitdiff
path: root/docker/utils
diff options
context:
space:
mode:
authordlorenc <lorenc.d@gmail.com>2015-11-30 14:51:26 -0800
committerdlorenc <lorenc.d@gmail.com>2015-11-30 14:51:26 -0800
commitadb3635378bc1cf8654444653ed6f2f9a6f0b6b8 (patch)
tree5f586b6f8f57c771bce64a4087e48e8cbc0df048 /docker/utils
parentd51d06d20971a04d7fad1a823808cec90a4d122b (diff)
downloaddocker-py-adb3635378bc1cf8654444653ed6f2f9a6f0b6b8.tar.gz
Allow utils.tar to take an existing file object.
Signed-off-by: dlorenc <lorenc.d@gmail.com>
Diffstat (limited to 'docker/utils')
-rw-r--r--docker/utils/utils.py11
1 files changed, 6 insertions, 5 deletions
diff --git a/docker/utils/utils.py b/docker/utils/utils.py
index 560ee8e..b6d7b18 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):