dblink: use config._init_dirs() when necessary
authorZac Medico <zmedico@gentoo.org>
Wed, 25 May 2011 05:01:35 +0000 (22:01 -0700)
committerZac Medico <zmedico@gentoo.org>
Thu, 26 May 2011 06:12:38 +0000 (23:12 -0700)
pym/portage/dbapi/vartree.py

index aa57ab74fd8c0c9d97e6333e0930403bee080417..1c0890683297c2ce3df6b6ce8fcac5b480f3b4c6 100644 (file)
@@ -3637,9 +3637,13 @@ class dblink(object):
                # write out our collection of md5sums
                if cfgfiledict != cfgfiledict_orig:
                        cfgfiledict.pop("IGNORE", None)
-                       ensure_dirs(os.path.dirname(conf_mem_file),
-                               gid=portage_gid, mode=0o2750, mask=0o2)
-                       writedict(cfgfiledict, conf_mem_file)
+                       try:
+                               writedict(cfgfiledict, conf_mem_file)
+                       except IOError as e:
+                               if e.errno != errno.ENOENT:
+                                       raise
+                               self.settings._init_dirs()
+                               writedict(cfgfiledict, conf_mem_file)
 
                return os.EX_OK