"""passbook Webserver management command"""

from logging import getLogger

import cherrypy
from django.conf import settings
from django.core.management.base import BaseCommand

from passbook.core.wsgi import application

LOGGER = getLogger(__name__)


class Command(BaseCommand):
    """Run CherryPy webserver"""

    def handle(self, *args, **options):
        """passbook cherrypy server"""
        config = settings.CHERRYPY_SERVER
        config.update(**options)
        cherrypy.config.update(config)
        cherrypy.tree.graft(application, '/')
        # Mount NullObject to serve static files
        cherrypy.tree.mount(None, '/static', config={
            '/': {
                'tools.staticdir.on': True,
                'tools.staticdir.dir': settings.STATIC_ROOT,
                'tools.expires.on': True,
                'tools.expires.secs': 86400,
                'tools.gzip.on': True,
            }
        })
        cherrypy.engine.start()
        cherrypy.engine.block()