Browse Source

grass.py: catch existing but unwritable tmp dir

git-svn-id: https://svn.osgeo.org/grass/grass/trunk@56673 15284696-431f-4ddb-bdfa-cd5b030d7da7
Markus Neteler 12 years ago
parent
commit
1310bc6f2c
1 changed files with 19 additions and 6 deletions
  1. 19 6
      lib/init/grass.py

+ 19 - 6
lib/init/grass.py

@@ -218,14 +218,27 @@ def create_tmp():
     if not tmp:
         tmp = os.getenv('TEMP')
     if not tmp:
+        tmp = os.getenv('TMP')
+    if not tmp:
         tmp = tempfile.gettempdir()
+    if tmp:
+        tmpdir = os.path.join(tmp, "grass7-%s-%s" % (user, gis_lock))
+        try:
+            os.mkdir(tmpdir, 0700)
+        except:
+            tmp = None
     if not tmp:
-        tmp = '/tmp'
-    tmpdir = os.path.join(tmp, "grass7-%s-%s" % (user, gis_lock))
-    try:
-        os.mkdir(tmpdir, 0700)
-    except:
-        fatal(_("Unable to create temporary directory <%s>! Exiting.") % tmpdir)
+        for ttmp in ("/tmp", "/var/tmp", "/usr/tmp"):
+            tmp = ttmp
+            tmpdir = os.path.join(tmp, "grass7-%s-%s" % (user, gis_lock))
+            try:
+                os.mkdir(tmpdir, 0700)
+            except:
+                tmp = None
+            if tmp:
+               break
+    if not tmp:
+        fatal(_("Unable to create temporary directory <grass7-%s-%s>! Exiting.") % (user, gis_lock))
 
 def create_gisrc():
     global gisrc, gisrcrc