Current section
Files
Jump to
Current section
Files
src/refrakt@cli.erl
-module(refrakt@cli).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/refrakt/cli.gleam").
-export([main/0]).
-file("src/refrakt/cli.gleam", 40).
-spec print_help() -> nil.
print_help() ->
gleam_stdlib:println(
gleam@string:join(
[<<"refrakt — A convention-first web framework for Gleam"/utf8>>,
<<""/utf8>>,
<<"Usage: refrakt <command> [options]"/utf8>>,
<<""/utf8>>,
<<"Commands:"/utf8>>,
<<" new <name> Create a new project"/utf8>>,
<<" --db postgres Add PostgreSQL support"/utf8>>,
<<" --db sqlite Add SQLite support"/utf8>>,
<<""/utf8>>,
<<" gen page <name> Generate a page (handler + route)"/utf8>>,
<<" gen resource <name> <fields...> Generate CRUD resource"/utf8>>,
<<" gen migration <name> Generate a SQL migration file"/utf8>>,
<<" gen auth Generate starter authentication"/utf8>>,
<<" gen island <name> Generate a Lustre interactive island"/utf8>>,
<<" gen live <name> Generate a Lustre server component"/utf8>>,
<<""/utf8>>,
<<" routes Print the route table"/utf8>>,
<<" migrate Run pending migrations"/utf8>>,
<<" build Compile Lustre islands to JS"/utf8>>,
<<" dev Start the dev server"/utf8>>,
<<""/utf8>>,
<<" help Show this help"/utf8>>,
<<" version Show version"/utf8>>,
<<""/utf8>>,
<<"Field types for gen resource:"/utf8>>,
<<" string, text, int, float, bool, date, datetime"/utf8>>,
<<" optional(string), optional(int), etc."/utf8>>,
<<""/utf8>>,
<<"Examples:"/utf8>>,
<<" refrakt new my_app --db postgres"/utf8>>,
<<" refrakt gen resource posts title:string body:text published:bool"/utf8>>,
<<" refrakt gen page about"/utf8>>],
<<"\n"/utf8>>
)
).
-file("src/refrakt/cli.gleam", 15).
-spec main() -> nil.
main() ->
case erlang:element(4, argv:load()) of
[<<"new"/utf8>>, Name | Flags] ->
refrakt@cli@new:run(Name, Flags);
[<<"gen"/utf8>>, <<"page"/utf8>>, Name@1 | _] ->
refrakt@cli@gen:page(Name@1);
[<<"gen"/utf8>>, <<"resource"/utf8>>, Name@2 | Fields] ->
refrakt@cli@gen:resource(Name@2, Fields);
[<<"gen"/utf8>>, <<"migration"/utf8>>, Name@3 | _] ->
refrakt@cli@gen:migration(Name@3);
[<<"gen"/utf8>>, <<"auth"/utf8>> | _] ->
refrakt@cli@gen:auth();
[<<"gen"/utf8>>, <<"island"/utf8>>, Name@4 | _] ->
refrakt@cli@gen:island(Name@4);
[<<"gen"/utf8>>, <<"live"/utf8>>, Name@5 | _] ->
refrakt@cli@gen:live(Name@5);
[<<"routes"/utf8>> | _] ->
refrakt@cli@routes:run();
[<<"migrate"/utf8>> | _] ->
refrakt@cli@migrate_cmd:run();
[<<"build"/utf8>> | _] ->
refrakt@cli@build:run();
[<<"dev"/utf8>> | _] ->
refrakt@cli@dev:run();
[<<"help"/utf8>> | _] ->
print_help();
[<<"--help"/utf8>> | _] ->
print_help();
[<<"-h"/utf8>> | _] ->
print_help();
[<<"version"/utf8>> | _] ->
gleam_stdlib:println(<<"refrakt 0.1.0"/utf8>>);
[<<"--version"/utf8>> | _] ->
gleam_stdlib:println(<<"refrakt 0.1.0"/utf8>>);
[<<"-v"/utf8>> | _] ->
gleam_stdlib:println(<<"refrakt 0.1.0"/utf8>>);
[Cmd | _] ->
gleam_stdlib:println(<<"Unknown command: "/utf8, Cmd/binary>>),
gleam_stdlib:println(<<""/utf8>>),
print_help();
[] ->
print_help()
end.