From 3d21efd4897053e760ad7f4ce14a5482f66e858c Mon Sep 17 00:00:00 2001 From: Michael Schwarz Date: Sun, 12 Jul 2015 18:57:21 +0200 Subject: support: Workaround for tempdir on different mount. This adds a workaround for setups where the user has checked out the project on a different mount point than where the temporary directory is located. --- support/lib/util.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'support/lib') diff --git a/support/lib/util.py b/support/lib/util.py index 45ecb89..3c5117d 100644 --- a/support/lib/util.py +++ b/support/lib/util.py @@ -5,9 +5,21 @@ class UserError(Exception): pass +def _temp_dir_is_on_same_mount_point(): + tempdir_stat = os.stat(tempfile.gettempdir()) + working_dir_stat = os.stat('.') + + return tempdir_stat.st_dev == working_dir_stat.st_dev + + @contextlib.contextmanager def TemporaryDirectory(): - dir = tempfile.mkdtemp() + if _temp_dir_is_on_same_mount_point(): + dir = None + else: + dir = '.' + + dir = tempfile.mkdtemp(dir = dir, prefix = '.tmp_') try: yield dir -- cgit