@@ -618,10 +618,11 @@ generate_router(Name, #{arizona := true}) ->
618618 " prefix => \"\" ,\n " ,
619619 " security => false,\n " ,
620620 " routes => [\n " ,
621- " {\" /\" , fun " ,
621+ " {\" /\" , arizona_nova_live:live( " ,
622622 Name ,
623- " _main_controller:index/1 , #{methods => [get]}},\n " ,
623+ " _home_view) , #{methods => [get]}},\n " ,
624624 " {\" /heartbeat\" , fun(_) -> {status, 200} end, #{methods => [get]}},\n " ,
625+ " {\" /live\" , arizona_nova_websocket, #{protocol => ws}},\n " ,
625626 " {\" /assets/[...]\" , \" static/assets\" }\n " ,
626627 " ]\n " ,
627628 " }\n " ,
@@ -669,38 +670,9 @@ generate_controller(Name, #{lfe := true}) ->
669670 " `#(status 200 #M() \" nova is running!\" ))\n "
670671 ],
671672 rebar3_nova_utils :write_file (Path , Content );
672- generate_controller (Name , #{arizona := true }) ->
673- Path = filename :join ([Name , " src" , " controllers" , Name ++ " _main_controller.erl" ]),
674- Content = [
675- " -module(" ,
676- Name ,
677- " _main_controller).\n\n " ,
678- " -export([index/1]).\n\n " ,
679- " index(_Req) ->\n " ,
680- " Html = <<\" <!DOCTYPE html>\"\n " ,
681- " \" <html lang=\\\" en\\\" >\"\n " ,
682- " \" <head>\"\n " ,
683- " \" <meta charset=\\\" UTF-8\\\" >\"\n " ,
684- " \" <meta name=\\\" viewport\\\" content=\\\" width=device-width, initial-scale=1.0\\\" >\"\n " ,
685- " \" <title>" ,
686- Name ,
687- " </title>\"\n " ,
688- " \" <link rel=\\\" stylesheet\\\" href=\\\" /assets/app.css\\\" >\"\n " ,
689- " \" </head>\"\n " ,
690- " \" <body>\"\n " ,
691- " \" <div id=\\\" app\\\" ><h1>Welcome to " ,
692- Name ,
693- " </h1>\"\n " ,
694- " \" <p>Powered by Nova + Arizona</p></div>\"\n " ,
695- " \" <script type=\\\" module\\\" >\"\n " ,
696- " \" import Arizona from '/assets/js/arizona.min.js';\"\n " ,
697- " \" globalThis.arizona = new Arizona();\"\n " ,
698- " \" arizona.connect('/live');\"\n " ,
699- " \" </script>\"\n " ,
700- " \" </body></html>\" >>,\n " ,
701- " {status, 200, #{<<\" content-type\" >> => <<\" text/html\" >>}, Html}.\n "
702- ],
703- rebar3_nova_utils :write_file (Path , Content );
673+ generate_controller (_Name , #{arizona := true }) ->
674+ % % No controller needed — arizona_nova_live:live/1 handles rendering
675+ ok ;
704676generate_controller (Name , _Flags ) ->
705677 Path = filename :join ([Name , " src" , " controllers" , Name ++ " _main_controller.erl" ]),
706678 Content = [
@@ -1134,8 +1106,7 @@ generate_docker_compose(Name) ->
11341106
11351107maybe_generate_arizona (Name , #{arizona := true }) ->
11361108 generate_home_view (Name ),
1137- generate_app_css (Name ),
1138- generate_arizona_copy_script (Name );
1109+ generate_app_css (Name );
11391110maybe_generate_arizona (_Name , _Flags ) ->
11401111 ok .
11411112
@@ -1214,20 +1185,6 @@ generate_app_css(Name) ->
12141185 ],
12151186 rebar3_nova_utils :write_file (Path , Content ).
12161187
1217- generate_arizona_copy_script (Name ) ->
1218- Path = filename :join ([Name , " copy_arizona_assets.sh" ]),
1219- Content = [
1220- " #!/bin/sh\n " ,
1221- " # Copy Arizona JS assets from arizona_core dep to app priv\n " ,
1222- " SRC=_build/default/lib/arizona_core/priv/static/assets/js\n " ,
1223- " DEST=priv/static/assets/js\n " ,
1224- " mkdir -p \" $DEST\"\n " ,
1225- " cp \" $SRC/arizona.min.js\" \" $DEST/arizona.min.js\"\n " ,
1226- " echo \" Copied Arizona JS to $DEST\"\n "
1227- ],
1228- rebar3_nova_utils :write_file (Path , Content ),
1229- file :change_mode (Path , 8#755 ).
1230-
12311188% %======================================================================
12321189% % maybe_generate_ci
12331190% %======================================================================
@@ -1302,11 +1259,4 @@ print_summary(Name, Flags) ->
13021259 false ->
13031260 ok
13041261 end ,
1305- case maps :get (arizona , Flags ) of
1306- true ->
1307- rebar_api :info (" rebar3 compile~n " , []),
1308- rebar_api :info (" ./copy_arizona_assets.sh~n " , []);
1309- false ->
1310- ok
1311- end ,
13121262 rebar_api :info (" rebar3 nova serve~n " , []).
0 commit comments