1234567891011121314151617181920212223242526272829303132333435363738394041 |
- -module(mad_release).
- -description("MAD precompiled binary packages").
- -copyright('Synrc Research Center, s.r.o').
- -compile(export_all).
- % depot releases for synrc.com/apps
- contains(X,String,Acc) ->
- case string:str(String,atom_to_list(X)) > 0 of true -> [{X}|Acc]; _ -> [] end.
- wildcards(Depot,X,Pattern) ->
- mad_repl:wildcards([Depot++atom_to_list(X)++Pattern]).
- atomlist(TARGETS) ->
- string:join(lists:map(fun(X) -> atom_to_list(X) end,TARGETS),",").
- depot_release(Name) ->
- mad_plan:main([]),
- TARGETS = [beam,ling],
- HOSTS = [mac,bsd,windows],
- Depot = "/Users/5HT/depot/synrc/synrc.com/apps/",
- {ok,Apps} = file:consult(Depot++"index.txt"),
- Files = lists:flatten([[
- lists:foldl(fun(A,Acc) -> [{A}|Acc] end,
- [], wildcards(Depot,X,lists:concat(["/ebin/**/*.{app,",atomlist(TARGETS),"}"]))),
- lists:foldl(fun(B,Acc)->[contains(P,B,Acc)||P<-HOSTS] end,
- [], wildcards(Depot,X,"/{bin,priv}/**/*")) ]
- || {_,[X],_} <- lists:flatten(Apps) ]),
- io:format("DEPOT Apps: ~p~n",[Files]),
- {ok,Name}.
- release([]) -> release(["script"]);
- release(["depot"]) -> release(["depot", "sample"]);
- release(["beam"]) -> release(["beam", "sample"]);
- release(["ling"]) -> release(["ling", "sample"]);
- release(["script"]) -> release(["script","sample"]);
- release(["ling",N]) -> mad_ling:ling(N);
- release(["script",N]) -> mad_bundle:main(N);
- release(["depot",N]) -> mad_release:depot_release(N);
- release(["beam",N]) -> mad_systools:beam_release(N);
- release([X]) -> release(["script",X]).
|