Current section

Files

Jump to
oaspec src oaspec@internal@formatter.erl
Raw

src/oaspec@internal@formatter.erl

-module(oaspec@internal@formatter).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/oaspec/internal/formatter.gleam").
-export([error_to_string/1, format_files/1]).
-export_type([format_error/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 format_error() :: gleam_not_found | {format_failed, integer()}.
-file("src/oaspec/internal/formatter.gleam", 26).
?DOC(false).
-spec error_to_string(format_error()) -> binary().
error_to_string(Error) ->
case Error of
gleam_not_found ->
<<"gleam command not found in PATH. Install Gleam to format generated code."/utf8>>;
{format_failed, Code} ->
<<"gleam format failed with exit code "/utf8,
(erlang:integer_to_binary(Code))/binary>>
end.
-file("src/oaspec/internal/formatter.gleam", 12).
?DOC(false).
-spec format_files(list(binary())) -> {ok, nil} | {error, format_error()}.
format_files(Dirs) ->
gleam@result:'try'(
begin
_pipe = oaspec_ffi:find_executable(<<"gleam"/utf8>>),
gleam@result:replace_error(_pipe, gleam_not_found)
end,
fun(Gleam_path) ->
Args = gleam@list:prepend(Dirs, <<"format"/utf8>>),
Exit_code = oaspec_ffi:run_executable(Gleam_path, Args),
case Exit_code of
0 ->
{ok, nil};
Code ->
{error, {format_failed, Code}}
end
end
).