view piecrust/commands/builtin/serving.py @ 170:c3831a762bc2

sources: Make the `SimplePageSource` more extensible, fix bugs in `prose` source. The `SimplePageSource` now calls a `_populateMetadata` function that subclasses can override to add/edit their custom metadata everwhere it would be returned to the system.
author Ludovic Chabant <ludovic@chabant.com>
date Sat, 03 Jan 2015 20:49:00 -0800
parents f3aa511eef99
children d7a548ebcd58
line wrap: on
line source

import logging
from piecrust.serving import Server
from piecrust.commands.base import ChefCommand


logger = logging.getLogger(__name__)


class ServeCommand(ChefCommand):
    def __init__(self):
        super(ServeCommand, self).__init__()
        self.name = 'serve'
        self.description = "Runs a local web server to serve your website."

    def setupParser(self, parser, app):
        parser.add_argument('-p', '--port',
                help="The port for the web server",
                default=8080)
        parser.add_argument('-a', '--address',
                help="The host for the web server",
                default='localhost')
        parser.add_argument('--use-reloader',
                help="Restart the server when PieCrust code changes",
                action='store_true')
        parser.add_argument('--use-debugger',
                help="Show the debugger when an error occurs",
                action='store_true')

    def run(self, ctx):
        server = Server(
                ctx.app.root_dir,
                host=ctx.args.address,
                port=ctx.args.port,
                debug=(ctx.args.debug or ctx.args.use_debugger),
                use_reloader=ctx.args.use_reloader)
        server.run()