from http.server import ThreadingHTTPServer, SimpleHTTPRequestHandler
from pathlib import Path
import mimetypes
import os

ROOT = Path('/click').resolve()
BIND_HOST = os.environ.get('CLICK_STATIC_BIND', '172.18.0.1')
PORT = int(os.environ.get('CLICK_STATIC_PORT', '18080'))

mimetypes.add_type('application/json', '.json')
mimetypes.add_type('application/vnd.android.package-archive', '.apk')

class Handler(SimpleHTTPRequestHandler):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, directory=str(ROOT), **kwargs)

    def end_headers(self):
        self.send_header('X-Content-Type-Options', 'nosniff')
        self.send_header('Cache-Control', 'no-cache')
        super().end_headers()

    def log_message(self, format, *args):
        with open('/click/static_server.log', 'a', encoding='utf-8') as log:
            log.write('%s - %s\n' % (self.address_string(), format % args))

if __name__ == '__main__':
    os.chdir(str(ROOT))
    ThreadingHTTPServer((BIND_HOST, PORT), Handler).serve_forever()
