Module Ketrew.Server

module Server: sig .. end


Implementation of the HTTP server.
val start : just_before_listening:(unit ->
(unit,
[> `Database of Ketrew.Persistent_data.Error.database
| `Dyn_plugin of
[> `Dynlink_error of Dynlink.error
| `Findlib of exn ]
| `Failure of string
| `IO of [> `Read_file_exn of string * exn ]
| `Server_status_error of string
| `Start_server_error of string
| `System of
[> `File_info of string
| `List_directory of string
| `Remove of string ] *
[> `Exn of exn ] ]
as 'propagated_error)
Unix_io.t) ->
configuration:Ketrew.Configuration.server ->
(unit, 'propagated_error) Unix_io.t
Start the server according to its configuration.
val status : configuration:Ketrew.Configuration.server ->
([ `Not_responding of string
| `Running
| `Wrong_response of Cohttp.Response.t ],
[> `Failure of string | `Server_status_error of string ])
Unix_io.Deferred_result.t
Ask for the status of the server running locally by calling "https://127.0.0.1:<port>/hello".
val stop : configuration:Ketrew.Configuration.server ->
([ `Done | `Timeout ],
[> `IO of [> `Exn of exn | `File_exists of string | `Wrong_path of string ]
| `Stop_server_error of string
| `System of [> `File_info of string ] * [> `Exn of exn ] ])
Unix_io.Deferred_result.t
Stop the server by calling the commad "die" on the configured command-pipe, stopping will fail with `Stop_server_error _ if that path is not configured.