mad_vz.erl 827 B

12345678910111213141516171819202122232425
  1. -module(mad_vz).
  2. -compile(export_all).
  3. create(App,_) -> create(App).
  4. create(App) ->
  5. Name = filename:basename(App,".tgz"),
  6. mad:info("Unpack Container: ~p~n",[Name]),
  7. {ok,Bin} = file:read_file(App),
  8. erl_tar:extract({binary,zlib:gunzip(Bin)},[{cwd,lists:concat(["apps/",Name])}]).
  9. start(App) ->
  10. mad:info("App: ~p~n",[App]),
  11. {ok,Bin} = file:read_file(lists:concat(["apps/",App,"/config.json"])),
  12. {Json } = jsone:decode(Bin),
  13. {Process} = proplists:get_value(<<"process">>,Json),
  14. Args = proplists:get_value(<<"args">>,Process),
  15. Concat = string:join(lists:map(fun(X) -> binary_to_list(X) end,Args)," "),
  16. {_,R,S} = sh:run(Concat,<<"log">>,lists:concat(["apps/",App])),
  17. mad:info("Oneliner: ~p~n",[Concat]),
  18. {ret(R),S}.
  19. stop(App) -> ok.
  20. ret(0) -> ok;
  21. ret(_) -> error.