summaryrefslogtreecommitdiff
path: root/generate_app
diff options
context:
space:
mode:
Diffstat (limited to 'generate_app')
-rw-r--r--generate_app18
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}])).