In config.regenerate(), skip loading /etc/profile.env if it's mtime hasn't changed...
authorZac Medico <zmedico@gentoo.org>
Thu, 23 Aug 2007 08:41:15 +0000 (08:41 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 23 Aug 2007 08:41:15 +0000 (08:41 -0000)
svn path=/main/branches/2.1.2/; revision=7683

pym/portage.py

index edb1de9a9b45226e3068c1905231f1f0095d1861..1afb96f86930de719d03eca276bc9bddf94f6e08 100644 (file)
@@ -987,6 +987,7 @@ class config:
                self.user_profile_dir = None
                self.local_config = local_config
                self._use_wildcards = False
+               self._env_d_mtime = 0
 
                if clone:
                        self.incrementals = copy.deepcopy(clone.incrementals)
@@ -1881,12 +1882,18 @@ class config:
                        self.already_in_regenerate = 1
 
                # We grab the latest profile.env here since it changes frequently.
-               self.configdict["env.d"].clear()
-               env_d = getconfig(
-                       os.path.join(self["ROOT"], "etc", "profile.env"), expand=False)
-               if env_d:
-                       # env_d will be None if profile.env doesn't exist.
-                       self.configdict["env.d"].update(env_d)
+               env_d_filename = os.path.join(self["ROOT"], "etc", "profile.env")
+               try:
+                       cur_timestamp = os.stat(env_d_filename).st_mtime
+               except OSError:
+                       cur_timestamp = 0
+               if cur_timestamp != self._env_d_mtime:
+                       self._env_d_mtime = cur_timestamp
+                       self.configdict["env.d"].clear()
+                       env_d = getconfig(env_d_filename, expand=False)
+                       if env_d:
+                               # env_d will be None if profile.env doesn't exist.
+                               self.configdict["env.d"].update(env_d)
 
                if useonly:
                        myincrementals=["USE"]