Rework how the escript is built so that we can inclue templates

This commit is contained in:
Dave Smith 2010-01-08 10:54:26 -07:00
parent 1454b4faa6
commit 1ea7065b83

View file

@ -39,10 +39,12 @@ main(Args) ->
%% Run rebar to do proper .app validation and such %% Run rebar to do proper .app validation and such
rebar:main(["compile"] ++ Args), rebar:main(["compile"] ++ Args),
%% Construct the archive of everything in ebin/ dir -- put it on the %% Read the contents of the files in ebin and templates; note that we place
%% top-level of the zip file so that code loading works properly. %% all the beam files at the top level of the code archive so that code loading
Files = filelib:wildcard("*", "ebin"), %% works properly.
case zip:create("mem", Files, [{cwd, "ebin"}, memory]) of Files = load_files("*", "ebin") ++ load_files("priv/templates/*", "."),
case zip:create("mem", Files, [memory]) of
{ok, {"mem", ZipBin}} -> {ok, {"mem", ZipBin}} ->
%% Archive was successfully created. Prefix that binary with our %% Archive was successfully created. Prefix that binary with our
%% header and write to "rebar" file %% header and write to "rebar" file
@ -73,3 +75,9 @@ build_time() ->
lists:flatten(io_lib:format("~4..0w~2..0w~2..0w_~2..0w~2..0w~2..0w", [Y, M, D, H, Min, S])). lists:flatten(io_lib:format("~4..0w~2..0w~2..0w_~2..0w~2..0w~2..0w", [Y, M, D, H, Min, S])).
load_files(Wildcard, Dir) ->
[read_file(Filename, Dir) || Filename <- filelib:wildcard(Wildcard, Dir)].
read_file(Filename, Dir) ->
{ok, Bin} = file:read_file(filename:join(Dir, Filename)),
{Filename, Bin}.