#!/usr/bin/env python
# vim:ts=4:sw=4:expandtab

'''Very simple static web server.

Takes a few thttpd-like arguments (-h for help)
'''
import os
import mimetypes

from diesel import Application, Service, log
from diesel.protocols import http
from diesel.web import send_from_directory, DieselFlask

log = log.name("dhttpd")

BASE = '.'
PORT = 8080

app = DieselFlask(__file__)

@app.route("/<path:file>", methods=["GET"])
def static_http(file):
    log.info("GET {0}", file)
    return send_from_directory(BASE, file)

def run():
    app.run(port=PORT)

def cli():
    global BASE
    global PORT

    from optparse import OptionParser

    parser = OptionParser()
    parser.add_option("-d", "--directory", dest="directory",
                      help="serve files from DIRECTORY",
                     metavar="DIRECTORY", default=BASE)
    parser.add_option("-p", "--port", dest="port",
                      help="listen on port PORT",
                     metavar="PORT", default=PORT, type="int")

    (options, args) = parser.parse_args()

    if args:
        parser.error("dhttpd takes no positional arguments")

    if options.directory:
        BASE = options.directory
    if options.port:
        PORT = options.port

    run()

if __name__ == '__main__':
    cli()
