Browse Source

fix elixir boot

Namdak Tonpa 5 years ago
parent
commit
41f09cfef3
3 changed files with 34 additions and 2 deletions
  1. 17 1
      mix.exs
  2. 16 0
      src/rest.erl
  3. 1 1
      src/rest_app.erl

+ 17 - 1
mix.exs

@@ -5,9 +5,25 @@ defmodule REST.Mixfile do
     [app: :rest,
      version: "5.10.2",
      description: "REST erlang interface generator",
-     package: package]
+     deps: deps(),
+     package: package()]
   end
 
+  def application() do
+    [
+      mod: {:rest, []},
+      applications: [:public_key,:asn1,:kernel,:stdlib,:ranch,:cowboy,:syntax_tools,:compiler,:n2o]
+    ]
+  end
+
+  def deps, do: [ {:ex_doc, ">= 0.0.0", only: :dev},
+                  {:rocksdb, github: "enterprizing/rocksdb"},
+                  {:kvs, "~> 6.7.7"},
+                  {:syn, "~> 1.6.3"},
+                  {:n2o, "~> 6.7.7"},
+                  {:jsone, "~> 1.5.0"},
+                  {:cowboy, "~> 2.5.0"} ]
+
   defp package do
     [files: ~w(src LICENSE mix.exs README.md rebar.config),
      licenses: ["MIT"],

+ 16 - 0
src/rest.erl

@@ -1,8 +1,24 @@
 -module(rest).
 -author('Dmitry Bushmelev').
+-behaviour(application).
+-behaviour(supervisor).
+-export([init/1,start/2, stop/1]).
 -export([behaviour_info/1, parse_transform/2, generate_to_json/3,
          generate_from_json/3, from_json/1, to_json/1, to_binary/1]).
 
+stop(_State) -> ok.
+start(_StartType, _StartArgs) -> supervisor:start_link({local, ?MODULE}, ?MODULE, []).
+init([]) ->
+   users:init(),
+   cowboy:start_clear(http, [{port,application:get_env(n2o,port,8005)}],
+                            #{env=>#{dispatch=> points() }}),
+   {ok, {{one_for_one, 5, 10}, []}}.
+
+points() -> cowboy_router:compile([{'_', [
+             {"/rest/:resource",     rest_cowboy, []},
+             {"/rest/:resource/:id", rest_cowboy, []}
+            ]}]).
+
 behaviour_info(callbacks) -> [{exists, 1}, {get, 0}, {get, 1}, {post, 1}, {delete, 1}, {from_json, 2}, {to_json, 1}];
 behaviour_info(_) -> undefined.
 

+ 1 - 1
src/rest_app.erl

@@ -14,4 +14,4 @@ start(_StartType, _StartArgs) ->
 points() -> cowboy_router:compile([{'_', [
              {"/rest/:resource",     rest_cowboy, []},
              {"/rest/:resource/:id", rest_cowboy, []}
-            ]}]).
+            ]}]).