annotate piecrust/wsgiutil/cwdapp.py @ 552:9612cfc6455a

serve: Rewrite of the Server-Sent Event code for build notifications. At the moment the server monitors the asset directories, and notifies the browser when an asset has changed and has been re-processed. * Fix issues around long-running requests/threads which mess up the ability to shutdown the server correctly with `CTRL-C` (see comments in code). * Move the notification queue to each SSE producer, to support having multiple pages open in a browser. * Add JS/CSS for showing quick notifications about re-processed assets. * Add support for hot-reloading CSS and pictures that have been re-processed.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 08 Aug 2015 16:12:04 -0700
parents d40b744a9d99
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
376
21687b933193 serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1 # This is a utility module that can be used with any WSGI-compatible server
21687b933193 serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2 # like Werkzeug or Gunicorn. It returns a WSGI app for serving a PieCrust
21687b933193 serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3 # website located in the current working directory.
21687b933193 serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4 import os
379
d40b744a9d99 serve: Add a generic WSGI app factory.
Ludovic Chabant <ludovic@chabant.com>
parents: 378
diff changeset
5 from piecrust.wsgiutil import get_app
376
21687b933193 serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
6
21687b933193 serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
7
21687b933193 serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
8 root_dir = os.getcwd()
379
d40b744a9d99 serve: Add a generic WSGI app factory.
Ludovic Chabant <ludovic@chabant.com>
parents: 378
diff changeset
9 app = get_app(root_dir)
378
fe8a58817088 serve: Compatibility with `mod_wsgi`.
Ludovic Chabant <ludovic@chabant.com>
parents: 376
diff changeset
10 # Add this for `mod_wsgi`.
fe8a58817088 serve: Compatibility with `mod_wsgi`.
Ludovic Chabant <ludovic@chabant.com>
parents: 376
diff changeset
11 application = app
376
21687b933193 serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
12