diff options
Diffstat (limited to 'generate_app')
| -rw-r--r-- | generate_app | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/generate_app b/generate_app index 576b485e1e..fb0eb1ea62 100644 --- a/generate_app +++ b/generate_app @@ -1,12 +1,16 @@ #!/usr/bin/env escript %% -*- erlang -*- -main([BeamDir, TargetFile]) -> - Modules = [list_to_atom(filename:basename(F, ".beam")) || - F <- filelib:wildcard("*.beam", BeamDir)], - {ok, {application, Application, Properties}} = io:read(''), - NewProperties = lists:keyreplace(modules, 1, Properties, - {modules, Modules}), +main([InFile, OutFile | SrcDirs]) -> + Modules = [list_to_atom(filename:basename(F, ".erl")) || + SrcDir <- SrcDirs, + F <- filelib:wildcard("*.erl", SrcDir)], + {ok, [{application, Application, Properties}]} = file:consult(InFile), + NewProperties = + case proplists:get_value(modules, Properties) of + [] -> lists:keyreplace(modules, 1, Properties, {modules, Modules}); + _ -> Properties + end, file:write_file( - TargetFile, + OutFile, io_lib:format("~p.~n", [{application, Application, NewProperties}])). |
