Current section
Files
Jump to
Current section
Files
src/go_over@retired.erl
-module(go_over@retired).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([check_retired/2, print_ret/1]).
-spec path(go_over@packages:package()) -> binary().
path(Pkg) ->
_pipe = go_over@constants:go_over_path(),
_pipe@1 = filepath:join(_pipe, <<"deps"/utf8>>),
_pipe@2 = filepath:join(_pipe@1, erlang:element(2, Pkg)),
filepath:join(_pipe@2, erlang:element(4, Pkg)).
-spec filname(go_over@packages:package()) -> binary().
filname(Pkg) ->
_pipe = Pkg,
_pipe@1 = path(_pipe),
filepath:join(_pipe@1, <<"resp.json"/utf8>>).
-spec pull_retired(go_over@packages:package()) -> nil.
pull_retired(Pkg) ->
go_over@print:progress(
<<<<"Checking: "/utf8, (erlang:element(2, Pkg))/binary>>/binary,
" From hex.pm"/utf8>>
),
_assert_subject = gleam@http@request:to(
<<<<<<"https://hex.pm/api/packages/"/utf8,
(erlang:element(2, Pkg))/binary>>/binary,
"/releases/"/utf8>>/binary,
(erlang:element(4, Pkg))/binary>>
),
{ok, Request} = 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/retired"/utf8>>,
function => <<"pull_retired"/utf8>>,
line => 31})
end,
_assert_subject@1 = begin
_pipe = Request,
_pipe@1 = gleam@http@request:prepend_header(
_pipe,
<<"accept"/utf8>>,
<<"application/json"/utf8>>
),
gleam@hackney:send(_pipe@1)
end,
{ok, Resp} = 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/retired"/utf8>>,
function => <<"pull_retired"/utf8>>,
line => 40})
end,
_assert_subject@2 = simplifile:create_directory_all(path(Pkg)),
{ok, _} = 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/retired"/utf8>>,
function => <<"pull_retired"/utf8>>,
line => 45})
end,
_assert_subject@3 = begin
_pipe@2 = Pkg,
_pipe@3 = filname(_pipe@2),
simplifile:write(_pipe@3, erlang:element(4, Resp))
end,
{ok, _} = 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/retired"/utf8>>,
function => <<"pull_retired"/utf8>>,
line => 47})
end,
nil.
-spec check_retired(go_over@packages:package(), boolean()) -> gleam@option:option(gleam@hexpm:release_retirement()).
check_retired(Pkg, Pull) ->
go_over@util:iffnil(Pull, fun() -> _pipe = Pkg,
_pipe@1 = path(_pipe),
go_over@cache:pull_if_not_cached(
_pipe@1,
3600,
fun() ->
_ = simplifile:delete(path(Pkg)),
pull_retired(Pkg)
end,
<<<<(erlang:element(2, Pkg))/binary, ":"/utf8>>/binary,
(erlang:element(4, Pkg))/binary>>
) end),
_assert_subject = begin
_pipe@2 = Pkg,
_pipe@3 = filname(_pipe@2),
simplifile:read(_pipe@3)
end,
{ok, Resp} = 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/retired"/utf8>>,
function => <<"check_retired"/utf8>>,
line => 71})
end,
_assert_subject@1 = gleam@json:decode(
Resp,
fun gleam@hexpm:decode_release/1
),
{ok, Release} = 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/retired"/utf8>>,
function => <<"check_retired"/utf8>>,
line => 76})
end,
erlang:element(8, Release).
-spec print_ret(gleam@hexpm:release_retirement()) -> binary().
print_ret(Ret) ->
Reason = gleam@hexpm:retirement_reason_to_string(erlang:element(2, Ret)),
case erlang:element(3, Ret) of
{some, Msg} ->
<<<<Reason/binary, ": "/utf8>>/binary, Msg/binary>>;
_ ->
Reason
end.