+ let bindings + where bindings + do notation I explored enough of the alternative language design space and decided that we should commit fully to Lambda style. That means no more highly tacit/concatenative point-free/partial programs as default. We'll keep taking advantage of those capabilities when it makes sense, but the library will continue to see massive overhauls.
24 lines
850 B
Plaintext
24 lines
850 B
Plaintext
!import "../lib/io.tri" !Local
|
|
!import "../lib/arboricx/server.tri" !Local
|
|
|
|
-- Arboricx HTTP registry server.
|
|
-- Run with --allow-write ./store --allow-read ./store
|
|
--
|
|
-- Endpoints:
|
|
-- GET / -> HTML landing page
|
|
-- GET /_arboricx/health -> "OK"
|
|
-- POST /_arboricx/bundle -> upload bundle, returns hash
|
|
-- GET /_arboricx/bundle/hash/:h -> download bundle by hash
|
|
--
|
|
-- Example usage:
|
|
-- curl http://localhost:8080/
|
|
-- curl http://localhost:8080/_arboricx/health
|
|
-- curl -X POST --data-binary @mybundle.arboricx http://localhost:8080/_arboricx/bundle
|
|
-- curl http://localhost:8080/_arboricx/bundle/hash/<hash>
|
|
|
|
main = io (thenIO
|
|
(putStrLn "Starting Arboricx server on 0.0.0.0:8080")
|
|
(thenIO
|
|
(void (ensureStore "./store"))
|
|
(arboricxServer "./store" "0.0.0.0" 8080)))
|