Current section
Files
Jump to
Current section
Files
src/review.erl
-module(review).
-behaviour(supervisor).
-behaviour(application).
-export([init/1, start/2, stop/1, main/1, fix/1, fix2/1]).
-include_lib("kvs/include/user.hrl").
main(A) -> mad:main(A).
start() -> application:start(kvs), start(normal,[]).
start(_,_) -> supervisor:start_link({local,review},review,[]).
stop(_) -> ok.
init([]) -> application:set_env(n2o,session,n2o),
application:set_env(n2o,pickler,n2o_secret),
application:set_env(n2o,fixpath,{review,fix2}),
application:set_env(kvs,dba,store_mnesia),
lager:set_loglevel(lager_console_backend, error),
kvs:join(),
{ok, {{one_for_one, 5, 10}, [spec()]}}.
spec() -> ranch:child_spec(http, 100, ranch_tcp, port(), cowboy_protocol, env()).
env() -> [ { env, [ { dispatch, points() } ] } ].
static() -> { dir, "deps/review", mime() }.
static2() -> { dir, "deps/spa/priv", mime() }.
n2o() -> { dir, "deps/n2o/priv", mime() }.
mime() -> [ { mimetypes, cow_mimetypes, all } ].
port() -> [ { port, application:get_env(n2o,port,8000) } ].
points() -> cowboy_router:compile([{'_', [
{ "/web/[...]", nitro_static, static2()},
{ "/n2o/[...]", nitro_static, n2o()},
{ "/ws/[...]", n2o_stream, []},
{ "/[...]", nitro_static, static()},
{ "/rest/:resource", rest_cowboy, []},
{ "/rest/:resource/:id", rest_cowboy, []} ]}]).
fix2(A) -> %io:format("FIX: ~p~n",[A]),
fix(A).
fix( "deps/review/priv") -> <<"deps/review/index.htm">>;
fix( "deps/review") -> <<"deps/review/index.htm">>;
fix( "deps/n2o/priv") -> <<"deps/review/login.htm">>;
fix(<<"deps/review/index",_/binary>>) -> <<"deps/review/index.htm">>;
fix(<<"deps/review/login",_/binary>>) -> <<"deps/review/login.htm">>;
fix(<<"deps/review/S.svg",_/binary>>) -> <<"deps/review/S.svg">>;
fix(<<"deps/review/back.jpg",_/binary>>) -> <<"deps/review/back.jpg">>;
fix(<<"deps/review/synrc.css",_/binary>>) -> <<"deps/review/synrc.css">>;
fix(Path) -> %io:format("xx: ~p~n",[Path]),
nitro:to_binary(Path).