-module(gladvent@internal@cmd). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/gladvent/internal/cmd.gleam"). -export([root/0, src_root/0, src_dir/1, exec/4, year_flag/0]). -export_type([timing/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(false). -type timing() :: endless | {ending, integer()}. -file("src/gladvent/internal/cmd.gleam", 15). ?DOC(false). -spec find_root(binary()) -> binary(). find_root(Path) -> Toml = filepath:join(Path, <<"gleam.toml"/utf8>>), case simplifile_erl:is_file(Toml) of {ok, false} -> find_root(filepath:join(<<".."/utf8>>, Path)); {error, _} -> find_root(filepath:join(<<".."/utf8>>, Path)); {ok, true} -> Path end. -file("src/gladvent/internal/cmd.gleam", 11). ?DOC(false). -spec root() -> binary(). root() -> find_root(<<"."/utf8>>). -file("src/gladvent/internal/cmd.gleam", 24). ?DOC(false). -spec src_root() -> binary(). src_root() -> filepath:join(root(), <<"src"/utf8>>). -file("src/gladvent/internal/cmd.gleam", 28). ?DOC(false). -spec src_dir(integer()) -> binary(). src_dir(Year) -> filepath:join( src_root(), <<"aoc_"/utf8, (erlang:integer_to_binary(Year))/binary>> ). -file("src/gladvent/internal/cmd.gleam", 43). ?DOC(false). -spec exec( list(integer()), timing(), fun((integer()) -> NNO), fun(({integer(), {ok, NNO} | {error, binary()}}) -> NNR) ) -> list(NNR). exec(Days, Timing, Do, Collect) -> _pipe = case Timing of endless -> 86400; {ending, Timeout} -> Timeout end, _pipe@1 = parallel_map:list_pmap(Days, Do, match_schedulers_online, _pipe), _pipe@2 = gleam@list:map( _pipe@1, fun(_capture) -> gleam@result:replace_error( _capture, <<"failed to execute task"/utf8>> ) end ), _pipe@3 = gleam@list:zip(Days, _pipe@2), gleam@list:map(_pipe@3, Collect). -file("src/gladvent/internal/cmd.gleam", 63). ?DOC(false). -spec current_year() -> integer(). current_year() -> A = erlang:element(1, erlang:localtime()), erlang:element(1, A). -file("src/gladvent/internal/cmd.gleam", 68). ?DOC(false). -spec year_flag() -> glint:flag(integer()). year_flag() -> glint:flag_constraint( begin _pipe = glint:int_flag(<<"year"/utf8>>), glint:flag_default(_pipe, current_year()) end, fun(Year) -> case Year < 2015 of true -> snag:error( <<"advent of code did not exist prior to 2015, did you mistype?"/utf8>> ); false -> {ok, Year} end end ).