Merge pull request #620 from lafka/erl-nested-dirs
Add support for nested dirs inside src/
This commit is contained in:
commit
2e608688b9
@ -1,18 +1,34 @@
|
||||
#!/usr/bin/env escript
|
||||
-export([main/1]).
|
||||
|
||||
main([FileName| LibDirs=[_|_]]) ->
|
||||
code:add_pathsa(LibDirs),
|
||||
main([FileName]);
|
||||
|
||||
main([FileName]) ->
|
||||
LibDirs = filelib:wildcard("{lib,deps}/*/ebin"),
|
||||
compile(FileName, LibDirs);
|
||||
main([FileName | LibDirs]) ->
|
||||
compile(FileName, LibDirs).
|
||||
|
||||
compile(FileName, LibDirs) ->
|
||||
Root = get_root(filename:dirname(FileName)),
|
||||
ok = code:add_pathsa(LibDirs),
|
||||
compile:file(FileName, [warn_obsolete_guard,
|
||||
warn_unused_import,
|
||||
warn_shadow_vars,
|
||||
warn_export_vars,
|
||||
strong_validation,
|
||||
report,
|
||||
{i, filename:dirname(FileName) ++ "/../include"},
|
||||
{i, filename:dirname(FileName) ++ "/../deps"},
|
||||
{i, filename:dirname(FileName) ++ "/../../../deps"}
|
||||
{i, filename:join(Root, "include")},
|
||||
{i, filename:join(Root, "deps")},
|
||||
{i, filename:join(Root, "apps")},
|
||||
{i, filename:join(Root, "lib")}
|
||||
]).
|
||||
|
||||
get_root(Dir) ->
|
||||
Path = filename:split(filename:absname(Dir)),
|
||||
filename:join(get_root(lists:reverse(Path), Path)).
|
||||
|
||||
get_root([], Path) ->
|
||||
Path;
|
||||
get_root(["src" | Tail], _Path) ->
|
||||
lists:reverse(Tail);
|
||||
get_root([_ | Tail], Path) ->
|
||||
get_root(Tail, Path).
|
||||
|
Loading…
Reference in New Issue
Block a user