Current section

Files

Jump to
libero src libero.erl
Raw

src/libero.erl

-module(libero).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/libero.gleam").
-export([main/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
" Libero: typed RPC framework for Gleam.\n"
"\n"
" Usage: gleam run -m libero\n"
"\n"
" Reads `gleam.toml` from the current directory and regenerates\n"
" dispatch, websocket, and client stubs based on handler signatures.\n"
).
-file("src/libero.gleam", 11).
-spec main() -> nil.
main() ->
nil = libero_ffi:trap_signals(),
case libero@cli@gen:run(<<"."/utf8>>) of
{ok, nil} ->
nil;
{error, Msg} ->
gleam_stdlib:println_error(Msg),
_ = erlang:halt(1),
nil
end.