#!/usr/bin/python

import os, sys, signal
from ashd import util

children = {}
root = sys.argv[1]

# Automatically reap all children that die for any reason.
signal.signal(signal.SIGCHLD, signal.SIG_IGN)

def serve(req):
    if "Host" in req:
        # Strip port specification
        dname = req["Host"].split(':')[0]
        dname = dname.lower()
        path = os.path.join(root, dname)
        if os.path.isdir(path):
            if dname not in children:
                children[dname] = util.pchild(["dirplex", path], autorespawn = True)
            children[dname].passreq(req)
            return
    util.respond(req, "No such host in configured.\n", status = "404 Not Found", ctype = "text/plain")

util.serveloop(serve)
