Packages

esbuild bundler for GitHub Actions written in Gleam

Current section

Files

Jump to
pontil_build src pontil_build.erl
Raw

src/pontil_build.erl

-module(pontil_build).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/pontil_build.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(
" pontil_build bundles Gleam GitHub Actions into single CommonJS files\n"
" using esbuild.\n"
"\n"
" Run with `gleam run -m pontil_build`. Configuration is read from\n"
" `[tools.pontil_build.bundle]` in `gleam.toml`.\n"
"\n"
" Based on [esgleam](https://hexdocs.pm/esgleam).\n"
).
-file("src/pontil_build.gleam", 25).
-spec run() -> {ok, nil} | {error, pontil_build@error:build_error()}.
run() ->
gleam@result:'try'(
pontil_build@config:read([check_dependency_placement]),
fun(Cfg) ->
gleam@result:'try'(
pontil_build@esbuild:ensure_installed(Cfg),
fun(_) ->
gleam@result:'try'(
pontil_build@esbuild:ensure_outdir(Cfg),
fun(_) ->
gleam@result:'try'(
pontil_build@esbuild:write_entry_wrapper(Cfg),
fun(_) -> pontil_build@esbuild:run(Cfg) end
)
end
)
end
)
end
).
-file("src/pontil_build.gleam", 15).
-spec main() -> nil.
main() ->
case run() of
{ok, nil} ->
gleam_stdlib:println(<<"Bundle complete."/utf8>>);
{error, E} ->
gleam_stdlib:println_error(
<<"Error: "/utf8,
(pontil_build@error:describe_error(E))/binary>>
),
erlang:halt(1)
end.