diff options
author | posativ <info@posativ.org> | 2012-04-21 23:28:24 +0200 |
---|---|---|
committer | posativ <info@posativ.org> | 2012-04-21 23:28:24 +0200 |
commit | 213b598a48b34d1e76afbd175635eb0e16d6343a (patch) | |
tree | 42f94103b44e22880bef9f6d2c88688a17023a1f /tools | |
parent | 978c9301208f2acc3c6e902cddd398cafc36bf37 (diff) |
enhanced CLI frontend and devserver support
With `klaus -r` (for --use-reloader) we enable werkzeug's autoreload
feature if the source code has changed. This is disabled by default.
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/devserver.py | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/tools/devserver.py b/tools/devserver.py deleted file mode 100755 index 314e783..0000000 --- a/tools/devserver.py +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/env python2 -import sys, os -import inspect - -sys.path.append(os.path.join(os.path.dirname(__file__), 'nano')) - -class ReloadApplicationMiddleware(object): - def __init__(self, import_func): - self.import_func = import_func - self.app = import_func() - self.files = self.get_module_mtimes() - - def get_module_mtimes(self): - files = {} - for module in sys.modules.itervalues(): - try: - file = inspect.getsourcefile(module) - files[file] = os.stat(file).st_mtime - except TypeError: - continue - return files - - def shall_reload(self): - for file, mtime in self.get_module_mtimes().iteritems(): - if not file in self.files or self.files[file] < mtime: - self.files = self.get_module_mtimes() - return True - return False - - def __call__(self, *args, **kwargs): - if self.shall_reload(): - print 'Reloading...' - self.app = self.import_func() - return self.app(*args, **kwargs) - -def import_app(): - sys.modules.pop('klaus', None) - sys.modules.pop('repo', None) - from klaus import app - return app - -import bjoern -bjoern.run(ReloadApplicationMiddleware(import_app), '127.0.0.1', 8080) |