From 3d21efd4897053e760ad7f4ce14a5482f66e858c Mon Sep 17 00:00:00 2001
From: Michael Schwarz <michi.schwarz@gmail.com>
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')

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