diff --git a/src/log.fnl b/src/log.fnl new file mode 100644 index 0000000..6e18921 --- /dev/null +++ b/src/log.fnl @@ -0,0 +1,21 @@ +(local levels {:debug 1 + :info 2 + :warn 3}) + +(local min-level + (if + (os.getenv :DEBUG) 1 + (os.getenv :QUIET) 3 + 2)) + +(fn log [level fmt ...] + (when (>= (or (. levels level) 0) min-level) + (print (string.format "%s: %s" + level + (string.format fmt ...))))) + + +{: log + :info (partial log :info) + :warn (partial log :warn) + :debug (partial log :debug)} diff --git a/src/serve.fnl b/src/serve.fnl new file mode 100644 index 0000000..86d5b51 --- /dev/null +++ b/src/serve.fnl @@ -0,0 +1,24 @@ +(local {:listen new-server} (require :http.server)) +(local {: dofile} (require :fennel)) +(local {: info} (require :log)) + +(local {: host : port} (dofile :config.fnl)) + +(fn on-stream [_server stream] + (stream:get_headers) + (info "received request") + (stream:write_headers {:status 200}) + (stream:write_body_from_string :hi)) +(local server + (assert (new-server + {:onstream on-stream + ; let the reverse proxy handle tls + :tls false + : host + : port}))) + +(info "starting server") +(assert (server:listen)) +(local (_ address port) (server:localname)) +(info "listening on %s:%d" address port) +(assert (server:loop))