Packages

Dev Tools for Eensy (Gleam framework for microprocessor-based embedded systems).

Current section

Files

Jump to
eensy_dev_tools src eensy_dev_tools@cli@pack.erl
Raw

src/eensy_dev_tools@cli@pack.erl

-module(eensy_dev_tools@cli@pack).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([do_app/1, app/0]).
-file("src/eensy_dev_tools/cli/pack.gleam", 42).
-spec do_app(boolean()) -> eensy_dev_tools@cli:cli(nil).
do_app(Prune) ->
eensy_dev_tools@cli:log(
<<"Packing your project"/utf8>>,
fun() ->
eensy_dev_tools@cli:do(
eensy_dev_tools@cli:get_name(),
fun(Project_name) ->
eensy_dev_tools@cli:success(
<<"Project compiled successfully"/utf8>>,
fun() ->
eensy_dev_tools@cli:log(
<<"Loading "/utf8>>,
fun() ->
eensy_dev_tools@cli:log(
<<"Running atomvm beam packer"/utf8>>,
fun() ->
Root = eensy_dev_tools@project:root(
),
eensy_dev_tools@cli:'try'(
eensy_dev_tools@project:export(),
fun(_) ->
Output_path = filepath:join(
Root,
<<"build/.atomvm"/utf8>>
),
gleam@result:unwrap(
simplifile:create_directory_all(
Output_path
),
nil
),
Input_paths = begin
_pipe = gleam@result:unwrap(
simplifile:get_files(
<<"build/erlang-shipment/"/utf8>>
),
[]
),
gleam@list:filter(
_pipe,
fun(Path) ->
gleam_stdlib:contains_string(
Path,
<<".beam"/utf8>>
)
end
)
end,
eensy_dev_tools@cli:'try'(
eensy_dev_tools@packbeam:create(
filepath:join(
Output_path,
<<Project_name/binary,
".release.avm"/utf8>>
),
Input_paths,
{some, Prune},
Project_name,
none
),
fun(_) ->
eensy_dev_tools@cli:return(
nil
)
end
)
end
)
end
)
end
)
end
)
end
)
end
).
-file("src/eensy_dev_tools/cli/pack.gleam", 25).
-spec app() -> glint:command(nil).
app() ->
glint:command_help(
<<"
Commands for packing BEAM and static files from your project
"/utf8>>,
fun() ->
glint:unnamed_args(
{eq_args, 0},
fun() ->
glint:flag(
eensy_dev_tools@cli@flag:prune(),
fun(Prune) ->
glint:command(
fun(_, _, Flags) ->
Script = begin
eensy_dev_tools@cli:do(
eensy_dev_tools@cli:get_bool(
<<"prune"/utf8>>,
false,
[],
Prune
),
fun(Prune@1) -> do_app(Prune@1) end
)
end,
case eensy_dev_tools@cli:run(Script, Flags) of
{ok, _} ->
nil;
{error, Error} ->
_pipe = eensy_dev_tools@error:explain(
Error
),
gleam_stdlib:print_error(_pipe)
end
end
)
end
)
end
)
end
).