-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 [options]"/utf8>>, <<""/utf8>>, <<"Commands:"/utf8>>, <<" new Create a new project"/utf8>>, <<" --db postgres Add PostgreSQL support"/utf8>>, <<" --db sqlite Add SQLite support"/utf8>>, <<""/utf8>>, <<" gen page Generate a page (handler + route)"/utf8>>, <<" gen resource Generate CRUD resource"/utf8>>, <<" gen migration Generate a SQL migration file"/utf8>>, <<" gen auth Generate starter authentication"/utf8>>, <<" gen island Generate a Lustre interactive island"/utf8>>, <<" gen live 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.