Current section

Files

Jump to
go_over src go_over@packages.erl
Raw

src/go_over@packages.erl

-module(go_over@packages).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([read_manifest/1]).
-export_type([package/0]).
-type package() :: {package, binary(), gleamsver:sem_ver(), binary(), boolean()}.
-spec read_manifest(binary()) -> list(package()).
read_manifest(Path) ->
_assert_subject = simplifile:read(Path),
{ok, Res} = case _assert_subject of
{ok, _} -> _assert_subject;
_assert_fail ->
erlang:error(#{gleam_error => let_assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _assert_fail,
module => <<"go_over/packages"/utf8>>,
function => <<"read_manifest"/utf8>>,
line => 13})
end,
_assert_subject@1 = tom:parse(Res),
{ok, Manifest} = case _assert_subject@1 of
{ok, _} -> _assert_subject@1;
_assert_fail@1 ->
erlang:error(#{gleam_error => let_assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _assert_fail@1,
module => <<"go_over/packages"/utf8>>,
function => <<"read_manifest"/utf8>>,
line => 14})
end,
_assert_subject@2 = tom:get_array(Manifest, [<<"packages"/utf8>>]),
{ok, Packages} = case _assert_subject@2 of
{ok, _} -> _assert_subject@2;
_assert_fail@2 ->
erlang:error(#{gleam_error => let_assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _assert_fail@2,
module => <<"go_over/packages"/utf8>>,
function => <<"read_manifest"/utf8>>,
line => 15})
end,
_assert_subject@3 = tom:get_table(Manifest, [<<"requirements"/utf8>>]),
{ok, Requirements} = case _assert_subject@3 of
{ok, _} -> _assert_subject@3;
_assert_fail@3 ->
erlang:error(#{gleam_error => let_assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _assert_fail@3,
module => <<"go_over/packages"/utf8>>,
function => <<"read_manifest"/utf8>>,
line => 16})
end,
Required_packages = gleam@dict:keys(Requirements),
_pipe = gleam@list:map(Packages, fun(P) -> case P of
{inline_table, X} ->
_assert_subject@4 = tom:get_string(X, [<<"name"/utf8>>]),
{ok, Name} = case _assert_subject@4 of
{ok, _} -> _assert_subject@4;
_assert_fail@4 ->
erlang:error(#{gleam_error => let_assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _assert_fail@4,
module => <<"go_over/packages"/utf8>>,
function => <<"read_manifest"/utf8>>,
line => 22})
end,
_assert_subject@5 = tom:get_string(X, [<<"version"/utf8>>]),
{ok, Ver} = case _assert_subject@5 of
{ok, _} -> _assert_subject@5;
_assert_fail@5 ->
erlang:error(#{gleam_error => let_assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _assert_fail@5,
module => <<"go_over/packages"/utf8>>,
function => <<"read_manifest"/utf8>>,
line => 23})
end,
_assert_subject@6 = gleamsver:parse(Ver),
{ok, Semver} = case _assert_subject@6 of
{ok, _} -> _assert_subject@6;
_assert_fail@6 ->
erlang:error(#{gleam_error => let_assert,
message => <<"Assertion pattern match failed"/utf8>>,
value => _assert_fail@6,
module => <<"go_over/packages"/utf8>>,
function => <<"read_manifest"/utf8>>,
line => 24})
end,
{some,
{package,
Name,
Semver,
Ver,
gleam@list:contains(Required_packages, Name)}};
_ ->
none
end end),
gleam@option:values(_pipe).