Current section
Files
Jump to
Current section
Files
src/refrakt@cli@project.erl
-module(refrakt@cli@project).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/refrakt/cli/project.gleam").
-export([app_name/0, detect_db/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.
-file("src/refrakt/cli/project.gleam", 9).
?DOC(" Read the project name from gleam.toml in the current directory.\n").
-spec app_name() -> binary().
app_name() ->
Content@1 = case simplifile:read(<<"gleam.toml"/utf8>>) of
{ok, Content} -> Content;
_assert_fail ->
erlang:error(#{gleam_error => let_assert,
message => <<"Pattern match failed, no pattern matched the value."/utf8>>,
file => <<?FILEPATH/utf8>>,
module => <<"refrakt/cli/project"/utf8>>,
function => <<"app_name"/utf8>>,
line => 10,
value => _assert_fail,
start => 302,
'end' => 356,
pattern_start => 313,
pattern_end => 324})
end,
Parsed@1 = case tom:parse(Content@1) of
{ok, Parsed} -> Parsed;
_assert_fail@1 ->
erlang:error(#{gleam_error => let_assert,
message => <<"Pattern match failed, no pattern matched the value."/utf8>>,
file => <<?FILEPATH/utf8>>,
module => <<"refrakt/cli/project"/utf8>>,
function => <<"app_name"/utf8>>,
line => 11,
value => _assert_fail@1,
start => 359,
'end' => 401,
pattern_start => 370,
pattern_end => 380})
end,
Name@1 = case tom:get_string(Parsed@1, [<<"name"/utf8>>]) of
{ok, Name} -> Name;
_assert_fail@2 ->
erlang:error(#{gleam_error => let_assert,
message => <<"Pattern match failed, no pattern matched the value."/utf8>>,
file => <<?FILEPATH/utf8>>,
module => <<"refrakt/cli/project"/utf8>>,
function => <<"app_name"/utf8>>,
line => 12,
value => _assert_fail@2,
start => 404,
'end' => 458,
pattern_start => 415,
pattern_end => 423})
end,
Name@1.
-file("src/refrakt/cli/project.gleam", 17).
?DOC(" Detect DB choice from gleam.toml dependencies.\n").
-spec detect_db() -> refrakt@cli@types:db_choice().
detect_db() ->
Content@1 = case simplifile:read(<<"gleam.toml"/utf8>>) of
{ok, Content} -> Content;
_assert_fail ->
erlang:error(#{gleam_error => let_assert,
message => <<"Pattern match failed, no pattern matched the value."/utf8>>,
file => <<?FILEPATH/utf8>>,
module => <<"refrakt/cli/project"/utf8>>,
function => <<"detect_db"/utf8>>,
line => 18,
value => _assert_fail,
start => 555,
'end' => 609,
pattern_start => 566,
pattern_end => 577})
end,
case gleam_stdlib:contains_string(Content@1, <<"pog"/utf8>>) of
true ->
postgres;
false ->
case gleam_stdlib:contains_string(Content@1, <<"sqlight"/utf8>>) of
true ->
sqlite;
false ->
no_db
end
end.