1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
#!/usr/bin/env escript
main([File]) ->
Dir = filename:dirname(File),
Defs = [strong_validation,
warn_export_all,
warn_export_vars,
warn_shadow_vars,
warn_obsolete_guard,
warn_unused_import,
report,
{i, Dir ++ "/include"},
{i, Dir ++ "/../include"},
{i, Dir ++ "/../../include"},
{i, Dir ++ "/../../../include"}],
case file:consult("rebar.config") of
{ok, Terms} ->
RebarLibDirs = proplists:get_value(lib_dirs, Terms, []),
lists:foreach(
fun(LibDir) ->
code:add_pathsa(filelib:wildcard(LibDir ++ "/*/ebin"))
end, RebarLibDirs),
RebarDepsDir = proplists:get_value(deps_dir, Terms, "deps"),
code:add_pathsa(filelib:wildcard(RebarDepsDir ++ "/*/ebin")),
RebarOpts = proplists:get_value(erl_opts, Terms, []);
{error, _} ->
RebarOpts = []
end,
code:add_patha("ebin"),
compile:file(File, Defs ++ RebarOpts);
main(_) ->
io:format("Usage: ~s <file>~n", [escript:script_name()]),
halt(1).
|