-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.