generator-saloon
Version:
Yeoman generator for erlang/cowboy based webapp
52 lines (43 loc) • 1.24 kB
Plain Text
-module({{name}}).
-include("{{name}}_log.hrl").
-export([start/0,
stop/0]).
%% application behaviour
-export([start/2,
start_phase/3,
stop/1]).
%% @doc Starts the application
start() ->
application:ensure_all_started({{name}}).
%% @doc Stops the application
stop() ->
application:stop({{name}}).
%% @private
start(_StartType, _StartArgs) ->
{{name}}_sup:start_link().
%% @private
stop(_State) ->
ok = cowboy:stop_listener({{name}}_http).
-spec start_phase(atom(), application:start_type(), []) -> ok | {error, term()}.
start_phase(start_http, _StartType, []) ->
{ok, Port} = application:get_env({{name}}, port),
Trails = trails:trails([{{name}}_echo_handler,
{{name}}_desc_handler,
cowboy_swagger_handler]),
trails:store(Trails),
Dispatch = trails:single_host_compile(Trails),
RanchOpts = [{port, Port}],
ListenerCount = 100,
CowboyOpts =
[
{env, [ {dispatch, Dispatch } ]},
{compress, true},
{timeout, 12000}
],
case cowboy:start_http({{name}}_http, ListenerCount, RanchOpts, CowboyOpts) of
{ok, _} ->
?info("Application listening on port: ~b", [Port]);
{error, _Err} ->
?error("Error starting application: ~p", [_Err])
end,
ok.