diff options
author | Loïc Hoguin <[email protected]> | 2024-11-21 15:55:37 +0100 |
---|---|---|
committer | Loïc Hoguin <[email protected]> | 2024-11-22 14:36:39 +0100 |
commit | e299e34960cd8968f7a8a9914e47ea83ed9218c2 (patch) | |
tree | d63594a5a95d23904b8e95bd68387c66e032df85 /templates/ranch_protocol.erl | |
parent | 9376f53f549c05cf692d0e259763049a039e96eb (diff) | |
download | erlang.mk-templates.tar.gz erlang.mk-templates.tar.bz2 erlang.mk-templates.zip |
Move templates outside the source .mk filestemplates
Templates now no longer use Make variables for substitution
but instead replace strings with their equivalent:
template_name: Corresponds to n=template_name
project_name: Corresponds to $(PROJECT) or in=project_name
This allows defining templates outside of Makefiles. For
example an external plugin could define their templates
in templates/my_template.erl and then have the following
in the included Makefile:
tpl_my_template = $(file < $(THIS)/templates/my_template.erl)
By default the created file will be in src/template_name.erl.
This can be overriden with the tplp_* variable:
tplp_my_template = src/model/my_template.erl
Substitution is applied both to the template contents and
to its path.
In addition, attempting to overwrite an existing file when
creating a template will result in failure.
Diffstat (limited to 'templates/ranch_protocol.erl')
-rw-r--r-- | templates/ranch_protocol.erl | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/templates/ranch_protocol.erl b/templates/ranch_protocol.erl new file mode 100644 index 0000000..1458815 --- /dev/null +++ b/templates/ranch_protocol.erl @@ -0,0 +1,25 @@ +-module(template_name). +-behaviour(ranch_protocol). + +-export([start_link/4]). +-export([init/4]). + +-type opts() :: []. +-export_type([opts/0]). + +-record(state, { + socket :: inet:socket(), + transport :: module() +}). + +start_link(Ref, Socket, Transport, Opts) -> + Pid = spawn_link(?MODULE, init, [Ref, Socket, Transport, Opts]), + {ok, Pid}. + +-spec init(ranch:ref(), inet:socket(), module(), opts()) -> ok. +init(Ref, Socket, Transport, _Opts) -> + ok = ranch:accept_ack(Ref), + loop(#state{socket=Socket, transport=Transport}). + +loop(State) -> + loop(State). |