Mercurial > hg > wsgintegrate
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)