diff options
-rwxr-xr-x | bootstrap | 22 |
1 files changed, 15 insertions, 7 deletions
@@ -13,7 +13,7 @@ main(Args) -> false -> ok end, - + %% Compile all src/*.erl to ebin case make:files(filelib:wildcard("src/*.erl"), [{outdir, "ebin"}, {i, "include"}, {d, 'BUILD_TIME', Built}]) of @@ -39,10 +39,12 @@ main(Args) -> %% Run rebar to do proper .app validation and such rebar:main(["compile"] ++ Args), - %% Construct the archive of everything in ebin/ dir -- put it on the - %% top-level of the zip file so that code loading works properly. - Files = filelib:wildcard("*", "ebin"), - case zip:create("mem", Files, [{cwd, "ebin"}, memory]) of + %% Read the contents of the files in ebin and templates; note that we place + %% all the beam files at the top level of the code archive so that code loading + %% works properly. + Files = load_files("*", "ebin") ++ load_files("priv/templates/*", "."), + + case zip:create("mem", Files, [memory]) of {ok, {"mem", ZipBin}} -> %% Archive was successfully created. Prefix that binary with our %% header and write to "rebar" file @@ -67,9 +69,15 @@ main(Args) -> "your current working directory. Place this script anywhere in your path\n" "and you can use rebar to build OTP-compliant apps.\n"). - + build_time() -> {{Y, M, D}, {H, Min, S}} = calendar:now_to_universal_time(now()), 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}. |