blob: 18486820f135fda57f67ec195fb3a79ce2fb455a (
plain) (
tree)
|
|
open Utilities.Result
let assemble config =
let* storage =
Configuration.find_section "storage" config
|> Option.to_result ~none:(Configuration.Error.missing_section "storage")
in
let* _, transport = Configuration.require_section ~name:"transport" ~valid_tags:["tcp"] config in
let* transport = Transport.TCP.parse transport in
let* kernel = RNT.initialize storage in
let module L = Listener.Make (Transport.TCP) in
Ok (fun () -> L.run kernel (Transport.TCP.create transport))
let run_from_config path =
let* config = Configuration.load ~expected_keys:["storage"; "transport"] path in
assemble config
|