package sihl
The modular functional web framework
Install
Dune Dependency
Authors
Maintainers
Sources
sihl-0.1.3.tbz
sha256=3d1acdd1eae24a7131033656f90b5d20c1621e6ef92957edf88a09b8b5f2d9e9
sha512=d224f54e20a9465c7a03d534dadcb2b9a181ae87c13731840db945aab37534f6f3982c5cb25a197e90c17d8772da062b19fa92bb93ed53a8b736c3776a7776db
doc/sihl.cmd/Cmd/index.html
Module Cmd
Source
Use this module to create your own command line commands in order to interact with the Sihl app.
Services can register command with the command service. This is why a lot of services have a dependency on it. All the built-in commands are contributed by individual services using this mechanism. Examples for those commands are:
migrate
is registered by the migration service and it runs the migrationsstart
is registered by the web server service and it starts the web servercreateadmin
is registered by the user service and it creates an admin user, useful to bootstrap your app so you have one user to log in
You can contribute your custom commands the same way to interact with your app through the CLI. This can be very handy for development and administration. You sometimes want to call services without going through the HTTP stack, authentication, validation and authorization layers.
Source
val make :
name:Base.string ->
?help:Base.string ->
description:Base.string ->
fn:fn ->
unit ->
t
Usage
This is how the command createadmin
is implemented:
let create_admin_cmd =
Cmd.make ~name:"createadmin" ~help:"<username> <email> <password>"
~description:"Create an admin user"
~fn:(fun args ->
match args with
| [ username; email; password ] ->
let ctx = Core.Ctx.empty |> DbService.add_pool in
User_service.create_admin ctx ~email ~password ~username:(Some username)
|> Lwt_result.map ignore
| _ -> Lwt_result.fail "Usage: <username> <email> <password>")
()
let _ =
App.(empty
|> with_services services
|> with_commands [ create_admin_cmd ]
|> run)
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
On This Page