summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorposativ <info@posativ.org>2012-04-21 23:28:24 +0200
committerposativ <info@posativ.org>2012-04-21 23:28:24 +0200
commit213b598a48b34d1e76afbd175635eb0e16d6343a (patch)
tree42f94103b44e22880bef9f6d2c88688a17023a1f /tools
parent978c9301208f2acc3c6e902cddd398cafc36bf37 (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-xtools/devserver.py43
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)