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