-module(tty@resolve_background).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/tty/resolve_background.gleam").
-export([resolve_background/1]).
-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).
-file("src/tty/resolve_background.gleam", 32).
?DOC(false).
-spec classify_background(binary()) -> integer().
classify_background(Bg) ->
case gleam_stdlib:parse_int(Bg) of
{ok, Bg@1} when (Bg@1 >= 0) andalso (Bg@1 =< 6) ->
1;
{ok, 8} ->
1;
{ok, 7} ->
2;
{ok, Bg@2} when (Bg@2 >= 9) andalso (Bg@2 =< 15) ->
2;
_ ->
0
end.
-file("src/tty/resolve_background.gleam", 21).
?DOC(false).
-spec resolve_colorfgbg(binary()) -> integer().
resolve_colorfgbg(Value) ->
case gleam@string:split(Value, <<";"/utf8>>) of
[_ | Rest] ->
case gleam@list:last(Rest) of
{ok, Bg} ->
classify_background(gleam@string:trim(Bg));
{error, nil} ->
0
end;
[] ->
0
end.
-file("src/tty/resolve_background.gleam", 11).
?DOC(false).
-spec resolve_background(fun((binary()) -> {ok, binary()} | {error, nil})) -> integer().
resolve_background(Env) ->
case Env(<<"COLORFGBG"/utf8>>) of
{ok, <<""/utf8>>} ->
0;
{error, _} ->
0;
{ok, Value} ->
resolve_colorfgbg(Value)
end.