|
@@ -4,19 +4,10 @@
|
|
-export([main/1]).
|
|
-export([main/1]).
|
|
|
|
|
|
main([]) -> help();
|
|
main([]) -> help();
|
|
-main(Args) ->
|
|
|
|
-
|
|
|
|
- {Opts, Params} = case getopt:parse(option_spec_list(), Args) of
|
|
|
|
- {ok, {Opts1, Params1}} ->
|
|
|
|
- {Opts1, [list_to_atom(E) || E <- Params1]};
|
|
|
|
- {error, {Reason, Data}} ->
|
|
|
|
- help(Reason, Data)
|
|
|
|
- end,
|
|
|
|
- maybe_invalid(Params),
|
|
|
|
- maybe_help(Opts, Params),
|
|
|
|
|
|
+main(Params) ->
|
|
|
|
|
|
Cwd = mad_utils:cwd(),
|
|
Cwd = mad_utils:cwd(),
|
|
- ConfigFile = get_value(config_file, Opts, "rebar.config"),
|
|
|
|
|
|
+ ConfigFile = "rebar.config",
|
|
ConfigFileAbs = filename:join(Cwd, ConfigFile),
|
|
ConfigFileAbs = filename:join(Cwd, ConfigFile),
|
|
Conf = mad_utils:consult(ConfigFileAbs),
|
|
Conf = mad_utils:consult(ConfigFileAbs),
|
|
Conf1 = mad_utils:script(ConfigFileAbs, Conf),
|
|
Conf1 = mad_utils:script(ConfigFileAbs, Conf),
|
|
@@ -30,7 +21,7 @@ main(Args) ->
|
|
LibDirs = mad_utils:lib_dirs(Cwd, Conf),
|
|
LibDirs = mad_utils:lib_dirs(Cwd, Conf),
|
|
code:add_paths(LibDirs),
|
|
code:add_paths(LibDirs),
|
|
|
|
|
|
- Fun = fun(F) -> ?MODULE:F(Cwd, ConfigFile, Conf1) end,
|
|
|
|
|
|
+ Fun = fun(F) -> Name = list_to_atom(F), ?MODULE:Name(Cwd, ConfigFile, Conf1) end,
|
|
lists:foreach(Fun, Params).
|
|
lists:foreach(Fun, Params).
|
|
|
|
|
|
%% fetch dependencies
|
|
%% fetch dependencies
|
|
@@ -49,11 +40,11 @@ main(Args) ->
|
|
|
|
|
|
%% compile dependencies and the app
|
|
%% compile dependencies and the app
|
|
compile(Cwd, ConfigFile, Conf) ->
|
|
compile(Cwd, ConfigFile, Conf) ->
|
|
- 'compile-apps'(Cwd, ConfigFile, Conf),
|
|
|
|
- 'compile-deps'(Cwd, ConfigFile, Conf).
|
|
|
|
|
|
+ 'compile-deps'(Cwd, ConfigFile, Conf),
|
|
|
|
+ 'compile-apps'(Cwd, ConfigFile, Conf).
|
|
|
|
|
|
'compile-apps'(Cwd, ConfigFile, Conf) ->
|
|
'compile-apps'(Cwd, ConfigFile, Conf) ->
|
|
- Dirs = get_value(sub_dirs, Conf, []),
|
|
|
|
|
|
+ Dirs = mad_utils:sub_dirs(Cwd, ConfigFile, Conf),
|
|
case Dirs of
|
|
case Dirs of
|
|
[] -> mad_compile:dep(Cwd, Conf, ConfigFile, Cwd);
|
|
[] -> mad_compile:dep(Cwd, Conf, ConfigFile, Cwd);
|
|
Apps -> mad_compile:deps(Cwd, Conf, ConfigFile, Apps) end.
|
|
Apps -> mad_compile:deps(Cwd, Conf, ConfigFile, Apps) end.
|
|
@@ -63,53 +54,12 @@ compile(Cwd, ConfigFile, Conf) ->
|
|
|
|
|
|
get_value(Key, Opts, Default) ->
|
|
get_value(Key, Opts, Default) ->
|
|
case lists:keyfind(Key, 1, Opts) of
|
|
case lists:keyfind(Key, 1, Opts) of
|
|
- {Key, Value} ->
|
|
|
|
- Value;
|
|
|
|
|
|
+ {Key, Value} -> Value;
|
|
_ -> Default end.
|
|
_ -> Default end.
|
|
|
|
|
|
-option_spec_list() ->
|
|
|
|
- [
|
|
|
|
- {help, $h, "help", undefined, "Displays this message"},
|
|
|
|
- {config_file, $C, "config", {string, "rebar.config"}, "Rebar config file to use"}
|
|
|
|
- ].
|
|
|
|
-
|
|
|
|
-maybe_help(Opts, Params) ->
|
|
|
|
- Fun = fun(L) ->
|
|
|
|
- case lists:member(help, L) of
|
|
|
|
- true ->
|
|
|
|
- help();
|
|
|
|
- false ->
|
|
|
|
- ok
|
|
|
|
- end
|
|
|
|
- end,
|
|
|
|
- Fun(Opts),
|
|
|
|
- Fun(Params).
|
|
|
|
-
|
|
|
|
-maybe_invalid(Params) ->
|
|
|
|
- lists:foreach(fun(E) ->
|
|
|
|
- case erlang:function_exported(?MODULE, E, 3) of
|
|
|
|
- true -> ok;
|
|
|
|
- false -> help("invalid_parameter", E)
|
|
|
|
- end
|
|
|
|
- end, Params).
|
|
|
|
-
|
|
|
|
-help("invalid_parameter", Data) ->
|
|
|
|
- help(io_lib:format("invalid_parameter \"~s\"", [Data]));
|
|
|
|
-help(Reason, Data) ->
|
|
|
|
- help(io_lib:format("~s ~p", [Reason, Data])).
|
|
|
|
-
|
|
|
|
-help(Msg) ->
|
|
|
|
- io:format("Error: ~s~n~n", [Msg]),
|
|
|
|
- help().
|
|
|
|
-
|
|
|
|
|
|
+help(Reason, Data) -> help(io_lib:format("~s ~p", [Reason, Data])).
|
|
|
|
+help(Msg) -> io:format("Error: ~s~n~n", [Msg]), help().
|
|
help() ->
|
|
help() ->
|
|
io:format("Manage Deps~n"),
|
|
io:format("Manage Deps~n"),
|
|
- Params = [
|
|
|
|
- {"", ""},
|
|
|
|
- {"get-deps", "Fetch dependencies"},
|
|
|
|
- {"compile-deps", "Compile dependencies"},
|
|
|
|
- {"compile-apps", "Compile applications"},
|
|
|
|
- {"compile", "Compile dependencies and applications"}
|
|
|
|
- ],
|
|
|
|
- getopt:usage(option_spec_list(), escript:script_name(), "", Params),
|
|
|
|
|
|
+ io:format("mad get-deps compile~n"),
|
|
halt().
|
|
halt().
|