The DocServer now performs an initial checkout and build of projects when started. It also symlinks the directory containing project HTML documentation into the static/ folder. This should probably be moved into a paver script instead of being done automatically on server startup. But it works and it is a good first cut.
This application is going to require several parts, the following which have become apparent: - A server to manage routing requests and serving templates. - A module for pulling project source code from repositories and building up-to-date documentation. - Utilities to service the above two modules. The code has been refactored into a Python package to facilitate the above tasks. - doc_server.py contains the server code and can be executed using: python doc_server.py to run the server locally. - doc_manager.py will manage fetching projects from repositories and building the documentation. Currently this means pulling git repos and running Sphinx. But if the supported toolset grows, this module may be split into several modules in order to handle the complexity. - utils.py contains utility routines used by the other modules. Furthermore, __init__.py imports the app object from doc_server.py and renames it to "application" so mod_wsgi based servers will be happy.
Starting to look good. Will try to build in support for multiple projects from the beginning. The front page now displays the icon and title of each project listed in the PROJECTS hash of config.py. Icons and titles need some work and vertical alignment, but overall things look good.
This server is written using the Flask microframework. Basically, it will do the following two things: - Listen for a POST to arrive on a special super secret URL which can be set via a configuration file. When the POST is recieved, it will update a Git repository and then rebuild Sphinx documentation. - Serve the Sphinx documentation.