|
@@ -0,0 +1,41 @@
|
|
|
|
+-module(mad_static).
|
|
|
|
+-copyright('Yuri Artemev').
|
|
|
|
+-compile(export_all).
|
|
|
|
+-define(NODE(Bin), "node_modules/.bin/"++Bin).
|
|
|
|
+
|
|
|
|
+main(Config, ["watch"]) ->
|
|
|
|
+ case mad_utils:get_value(static, Config, []) of
|
|
|
|
+ [] -> skip;
|
|
|
|
+ SC ->
|
|
|
|
+ Port = mad_utils:get_value(assets_port, SC, 3000),
|
|
|
|
+ install_deps(), serve_static(Port)
|
|
|
|
+ end;
|
|
|
|
+main(Config, _Params) ->
|
|
|
|
+ case mad_utils:get_value(static, Config, []) of
|
|
|
|
+ [] -> skip;
|
|
|
|
+ SC ->
|
|
|
|
+ Files = mad_utils:get_value(files, SC, []),
|
|
|
|
+ install_deps(), compile_static(Files)
|
|
|
|
+ end.
|
|
|
|
+
|
|
|
|
+install_deps() ->
|
|
|
|
+ case filelib:is_dir("node_modules/mincer-erl") of
|
|
|
|
+ true -> ok;
|
|
|
|
+ _ ->
|
|
|
|
+ case sh:oneliner("npm install mincer-erl") of
|
|
|
|
+ {_,0,_} -> ok;
|
|
|
|
+ {_,_,_} -> exit("error while installing mincer-erl")
|
|
|
|
+ end
|
|
|
|
+ end.
|
|
|
|
+
|
|
|
|
+% FIXME exit
|
|
|
|
+serve_static(Port) ->
|
|
|
|
+ PortStr = integer_to_list(Port),
|
|
|
|
+ sh:oneliner([?NODE("mincer-erl-serve"), "-p " ++ PortStr]).
|
|
|
|
+
|
|
|
|
+compile_static(Files) ->
|
|
|
|
+ Res = sh:oneliner([?NODE("mincer-erl-compile")] ++ Files),
|
|
|
|
+ case Res of
|
|
|
|
+ {_,0,_} -> ok;
|
|
|
|
+ {_,_,_} -> exit("error while compiling assets")
|
|
|
|
+ end.
|