-module(gladvent@internal@cmd). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([root/0, src_root/0, src_dir/1, exec/4, year_flag/0]). -export_type([timing/0]). -type timing() :: endless | {ending, integer()}. -file("/home/runner/work/gladvent/gladvent/src/gladvent/internal/cmd.gleam", 17). -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("/home/runner/work/gladvent/gladvent/src/gladvent/internal/cmd.gleam", 13). -spec root() -> binary(). root() -> find_root(<<"."/utf8>>). -file("/home/runner/work/gladvent/gladvent/src/gladvent/internal/cmd.gleam", 26). -spec src_root() -> binary(). src_root() -> filepath:join(root(), <<"src"/utf8>>). -file("/home/runner/work/gladvent/gladvent/src/gladvent/internal/cmd.gleam", 30). -spec src_dir(integer()) -> binary(). src_dir(Year) -> filepath:join( src_root(), <<"aoc_"/utf8, (gleam@int:to_string(Year))/binary>> ). -file("/home/runner/work/gladvent/gladvent/src/gladvent/internal/cmd.gleam", 45). -spec exec( list(integer()), timing(), fun((integer()) -> PEF), fun(({integer(), {ok, PEF} | {error, binary()}}) -> PEI) ) -> list(PEI). exec(Days, Timing, Do, Collect) -> _pipe@4 = case Timing of endless -> _pipe = Days, _pipe@1 = gleam@list:map( _pipe, fun(Day) -> {Day, gleam@otp@task:async(fun() -> Do(Day) end)} end ), (fun(Tasks) -> gleam@list:map( Tasks, fun(Tup) -> gleam@pair:map_second( Tup, fun(T) -> {ok, gleam@otp@task:await_forever(T)} end ) end ) end)(_pipe@1); {ending, Timeout} -> _pipe@2 = parallel_map:list_pmap( Days, Do, match_schedulers_online, Timeout ), _pipe@3 = gleam@list:map( _pipe@2, fun(_capture) -> gleam@result:replace_error( _capture, <<"failed to execute task"/utf8>> ) end ), gleam@list:zip(Days, _pipe@3) end, gleam@list:map(_pipe@4, Collect). -file("/home/runner/work/gladvent/gladvent/src/gladvent/internal/cmd.gleam", 79). -spec current_year() -> integer(). current_year() -> A = erlang:element(1, erlang:localtime()), erlang:element(1, A). -file("/home/runner/work/gladvent/gladvent/src/gladvent/internal/cmd.gleam", 84). -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 ).