Current section
Files
Jump to
Current section
Files
src/sqlode@internal@formatter.erl
-module(sqlode@internal@formatter).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/sqlode/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(), binary()}.
-file("src/sqlode/internal/formatter.gleam", 59).
?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, Output} ->
Trimmed = gleam@string:trim(Output),
case Trimmed of
<<""/utf8>> ->
<<"gleam format failed with exit code "/utf8,
(erlang:integer_to_binary(Code))/binary>>;
_ ->
<<<<<<"gleam format failed with exit code "/utf8,
(erlang:integer_to_binary(Code))/binary>>/binary,
": "/utf8>>/binary,
Trimmed/binary>>
end
end.
-file("src/sqlode/internal/formatter.gleam", 35).
?DOC(false).
-spec format_files(list(binary())) -> {ok, nil} | {error, format_error()}.
format_files(Files) ->
case Files of
[] ->
{ok, nil};
_ ->
case sqlode_ffi:find_executable(<<"gleam"/utf8>>) of
{error, nil} ->
{error, gleam_not_found};
{ok, Gleam_path} ->
{Exit_code, Output} = sqlode_ffi:run_executable(
Gleam_path,
[<<"format"/utf8>> | Files]
),
case Exit_code of
0 ->
{ok, nil};
Code ->
{error, {format_failed, Code, Output}}
end
end
end.