Browse Source

turning erlydtl into OTP server app

Roberto Saccon 17 years ago
parent
commit
b5702a26fb
4 changed files with 167 additions and 1 deletions
  1. 0 1
      src/demo/erlydtl_demo.erl
  2. 19 0
      src/erlydtl/erlydtl.app
  3. 71 0
      src/erlydtl/erlydtl_app.erl
  4. 77 0
      src/erlydtl/erlydtl_sup.erl

+ 0 - 1
src/demo/erlydtl_demo.erl

@@ -77,7 +77,6 @@ render_html() ->
     OutDir = filename:join([filename:dirname(code:which(?MODULE)),"..", "demo", "out"]),
     OutDir = filename:join([filename:dirname(code:which(?MODULE)),"..", "demo", "out"]),
     render(OutDir, test_variable, ".html", ["foostring"]),
     render(OutDir, test_variable, ".html", ["foostring"]),
     render(OutDir, test_extend, ".html", ["bar1string", "bar2string"]),
     render(OutDir, test_extend, ".html", ["bar1string", "bar2string"]),
- %% render(OutDir, test_extend, ".html", ["bar1string"]),
     render(OutDir, test_comment, ".html"),
     render(OutDir, test_comment, ".html"),
     render(OutDir, test_tags, ".html").
     render(OutDir, test_tags, ".html").
 
 

+ 19 - 0
src/erlydtl/erlydtl.app

@@ -0,0 +1,19 @@
+{application, erlydtl,
+ [{description, "ErlyDTL Server"},
+  {vsn, "0.1"},
+  {modules, [
+    erlydtl,
+    erlydtl_app,
+    erlydtl_sup,
+    erlydtl_parser,
+    erlydtl_scanner,
+    erlydtl_tool
+  ]},
+  {registered, []},
+  {applications, [
+    kernel,
+    stdlib
+  ]},
+  {included_applications, []},
+  {env, []},
+  {mod, {erlydtl_app, []}}]}.

+ 71 - 0
src/erlydtl/erlydtl_app.erl

@@ -0,0 +1,71 @@
+%%%-------------------------------------------------------------------
+%%% File:      erlydtl_app.erl
+%%% @author    Roberto Saccon <rsaccon@gmail.com> [http://rsaccon.com]
+%%% @copyright 2007 Roberto Saccon
+%%% @doc  
+%%%
+%%% @end  
+%%%
+%%% The MIT License
+%%%
+%%% Copyright (c) 2007 Roberto Saccon
+%%%
+%%% Permission is hereby granted, free of charge, to any person obtaining a copy
+%%% of this software and associated documentation files (the "Software"), to deal
+%%% in the Software without restriction, including without limitation the rights
+%%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+%%% copies of the Software, and to permit persons to whom the Software is
+%%% furnished to do so, subject to the following conditions:
+%%%
+%%% The above copyright notice and this permission notice shall be included in
+%%% all copies or substantial portions of the Software.
+%%%
+%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+%%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+%%% THE SOFTWARE.
+%%%
+%%% @since 2007-12-15 by Roberto Saccon
+%%%-------------------------------------------------------------------
+-module(erlydtl_app).
+-author('rsaccon@gmail.com').
+
+-behaviour(application).
+
+%% Application callbacks
+-export([start/2, stop/1]).
+
+%%====================================================================
+%% Application callbacks
+%%====================================================================
+%%--------------------------------------------------------------------
+%% @spec start(Type, StartArgs) -> {ok, Pid} |
+%%                                 {ok, Pid, State} |
+%%                                 {error, Reason}
+%% @doc This function is called whenever an application 
+%% is started using application:start/1,2, and should start the processes
+%% of the application. If the application is structured according to the
+%% OTP design principles as a supervision tree, this means starting the
+%% top supervisor of the tree.
+%% @end 
+%%--------------------------------------------------------------------
+start(_Type, StartArgs) ->
+    skast_sup:start_link(StartArgs).
+
+%%--------------------------------------------------------------------
+%% @spec stop(State) -> void()
+%% @doc This function is called whenever an application
+%% has stopped. It is intended to be the opposite of Module:start/2 and
+%% should do any necessary cleaning up. The return value is ignored. 
+%% @end 
+%%--------------------------------------------------------------------
+stop(_State) ->
+    ok.
+
+%%====================================================================
+%% Internal functions
+%%====================================================================
+

+ 77 - 0
src/erlydtl/erlydtl_sup.erl

@@ -0,0 +1,77 @@
+%%%-------------------------------------------------------------------
+%%% File:      erlydtl_sup.erl
+%%% @author    Roberto Saccon <rsaccon@gmail.com> [http://rsaccon.com]
+%%% @copyright 2007 Roberto Saccon
+%%% @doc  
+%%%
+%%% @end  
+%%%
+%%% The MIT License
+%%%
+%%% Copyright (c) 2007 Roberto Saccon
+%%%
+%%% Permission is hereby granted, free of charge, to any person obtaining a copy
+%%% of this software and associated documentation files (the "Software"), to deal
+%%% in the Software without restriction, including without limitation the rights
+%%% to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+%%% copies of the Software, and to permit persons to whom the Software is
+%%% furnished to do so, subject to the following conditions:
+%%%
+%%% The above copyright notice and this permission notice shall be included in
+%%% all copies or substantial portions of the Software.
+%%%
+%%% THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+%%% IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+%%% FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+%%% AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+%%% LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+%%% OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+%%% THE SOFTWARE.
+%%%
+%%% @since 2007-12-15 by Roberto Saccon
+%%%-------------------------------------------------------------------
+-module(erlydtl_sup).
+-author('rsaccon@gmail.com').
+
+-behaviour(supervisor).
+
+%% API
+-export([start_link/0]).
+
+%% Supervisor callbacks
+-export([init/1]).
+
+-define(SERVER, ?MODULE).
+
+%%====================================================================
+%% API functions
+%%====================================================================
+%%--------------------------------------------------------------------
+%% @spec start_link() -> {ok,Pid} | ignore | {error,Error}
+%% @doc Starts the supervisor
+%% @end 
+%%--------------------------------------------------------------------
+start_link() ->
+    supervisor:start_link({local, ?SERVER}, ?MODULE, []).
+
+%%====================================================================
+%% Supervisor callbacks
+%%====================================================================
+%%--------------------------------------------------------------------
+%% @spec init(Args) -> {ok,  {SupFlags,  [ChildSpec]}} |
+%%                     ignore                          |
+%%                     {error, Reason}
+%% @doc Whenever a supervisor is started using 
+%% supervisor:start_link/[2,3], this function is called by the new process 
+%% to find out about restart strategy, maximum restart frequency and child 
+%% specifications.
+%% @end 
+%%--------------------------------------------------------------------
+init([]) ->
+    AChild = {erlydtl,{erlydtl,start_link,[]},
+              permanent,2000,worker,[erlydtl]},
+    {ok,{{one_for_all,0,1}, [AChild]}}.
+
+%%====================================================================
+%% Internal functions
+%%====================================================================