changeset 10:67cc627cbea7

stub reloading; does not yet work
author Jeff Hammel <jhammel@mozilla.com>
date Sat, 25 Jun 2011 11:06:29 -0700
parents 25424199f1af
children 88b611ed2c5e
files wsgintegrate/factory.py
diffstat 1 files changed, 20 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/wsgintegrate/factory.py	Tue Jun 21 07:08:24 2011 -0700
+++ b/wsgintegrate/factory.py	Sat Jun 25 11:06:29 2011 -0700
@@ -1,13 +1,31 @@
-
 """
 WSGI integration factory
 """
 
+import os
+import sys
 from pyloader.factory import IniFactory
 
 class WSGIfactory(IniFactory):
+    def __init__(self, inifile, main=''):
+        IniFactory.__init__(self, inifile, main)
+        self.mtime = os.path.getmtime(self.inifile)
+
     def __call__(self, environ, start_response):
-        """WSGI"""
+        """WSGI application"""
+
+        # if the configuration has changed,
+        # reload the .ini file
+        mtime = os.path.getmtime(self.inifile)
+        if mtime > self.mtime:
+            print "Reloading '%s': %s > %s" % (self.inifile, mtime, self.mtime)
+            try:
+                config = self.read(self.inifile)
+                self.configure(config)
+            except Exception, e:
+                print >> sys.stderr, "Error reading '%s': %s" % (self.inifile, e)
+            self.mtime = mtime
+        
         app = self.load(self.main)
         return app(environ, start_response)