summaryrefslogtreecommitdiff
path: root/src/rebar_reltool.erl
diff options
context:
space:
mode:
authorTuncer Ayaz <tuncer.ayaz@gmail.com>2012-07-14 23:44:47 +0200
committerTuncer Ayaz <tuncer.ayaz@gmail.com>2012-07-23 13:17:11 +0200
commit252757c753e9ec5c5247a86eb635aee385d05ee1 (patch)
treea4d81e806bdfed018f0e5edf01aa4889d0a58896 /src/rebar_reltool.erl
parent3c56fbab6f5d0b87ba21fac828899d20132d5066 (diff)
Do not use application:set_env
Diffstat (limited to 'src/rebar_reltool.erl')
-rw-r--r--src/rebar_reltool.erl36
1 files changed, 19 insertions, 17 deletions
diff --git a/src/rebar_reltool.erl b/src/rebar_reltool.erl
index 79b2a2a..93aec3e 100644
--- a/src/rebar_reltool.erl
+++ b/src/rebar_reltool.erl
@@ -67,11 +67,11 @@ generate(Config0, ReltoolFile) ->
overlay(Config, ReltoolFile) ->
%% Load the reltool configuration from the file
{Config1, ReltoolConfig} = rebar_rel_utils:load_config(Config, ReltoolFile),
- {Config1, process_overlay(ReltoolConfig)}.
+ {Config1, process_overlay(Config, ReltoolConfig)}.
clean(Config, ReltoolFile) ->
{Config1, ReltoolConfig} = rebar_rel_utils:load_config(Config, ReltoolFile),
- TargetDir = rebar_rel_utils:get_target_dir(ReltoolConfig),
+ TargetDir = rebar_rel_utils:get_target_dir(Config, ReltoolConfig),
rebar_file_utils:rm_rf(TargetDir),
rebar_file_utils:delete_each(["reltool.spec"]),
{ok, Config1}.
@@ -98,8 +98,8 @@ check_vsn() ->
end
end.
-process_overlay(ReltoolConfig) ->
- TargetDir = rebar_rel_utils:get_target_dir(ReltoolConfig),
+process_overlay(Config, ReltoolConfig) ->
+ TargetDir = rebar_rel_utils:get_target_dir(Config, ReltoolConfig),
{_BootRelName, BootRelVsn} =
rebar_rel_utils:get_reltool_release_info(ReltoolConfig),
@@ -112,7 +112,7 @@ process_overlay(ReltoolConfig) ->
{target_dir, TargetDir}]),
%% Load up any variables specified by overlay_vars
- OverlayVars1 = overlay_vars(OverlayVars0, ReltoolConfig),
+ OverlayVars1 = overlay_vars(Config, OverlayVars0, ReltoolConfig),
OverlayVars = rebar_templater:resolve_variables(dict:to_list(OverlayVars1),
OverlayVars1),
@@ -135,9 +135,11 @@ process_overlay(ReltoolConfig) ->
%% variable in the file from reltool.config and then override that value by
%% providing an additional file on the command-line.
%%
-overlay_vars(Vars0, ReltoolConfig) ->
+overlay_vars(Config, Vars0, ReltoolConfig) ->
BaseVars = load_vars_file(proplists:get_value(overlay_vars, ReltoolConfig)),
- OverrideVars = load_vars_file(rebar_config:get_global(overlay_vars, undefined)),
+ OverrideVars = load_vars_file(rebar_config:get_global(Config,
+ overlay_vars,
+ undefined)),
M = fun(_Key, _Base, Override) -> Override end,
dict:merge(M, dict:merge(M, Vars0, BaseVars), OverrideVars).
@@ -189,18 +191,18 @@ app_exists(AppTuple, Server) when is_tuple(AppTuple) ->
app_exists(element(1, AppTuple), Server).
-run_reltool(Server, _Config, ReltoolConfig) ->
+run_reltool(Server, Config, ReltoolConfig) ->
case reltool:get_target_spec(Server) of
{ok, Spec} ->
%% Pull the target dir and make sure it exists
- TargetDir = rebar_rel_utils:get_target_dir(ReltoolConfig),
- mk_target_dir(TargetDir),
+ TargetDir = rebar_rel_utils:get_target_dir(Config, ReltoolConfig),
+ mk_target_dir(Config, TargetDir),
%% Determine the otp root dir to use
- RootDir = rebar_rel_utils:get_root_dir(ReltoolConfig),
+ RootDir = rebar_rel_utils:get_root_dir(Config, ReltoolConfig),
%% Dump the spec, if necessary
- dump_spec(Spec),
+ dump_spec(Config, Spec),
%% Have reltool actually run
case reltool:eval_target_spec(Spec, RootDir, TargetDir) of
@@ -216,20 +218,20 @@ run_reltool(Server, _Config, ReltoolConfig) ->
ok = create_RELEASES(TargetDir, BootRelName, BootRelVsn),
- process_overlay(ReltoolConfig);
+ process_overlay(Config, ReltoolConfig);
{error, Reason} ->
?ABORT("Unable to generate spec: ~s\n", [Reason])
end.
-mk_target_dir(TargetDir) ->
+mk_target_dir(Config, TargetDir) ->
case filelib:ensure_dir(filename:join(TargetDir, "dummy")) of
ok ->
ok;
{error, eexist} ->
%% Output directory already exists; if force=1, wipe it out
- case rebar_config:get_global(force, "0") of
+ case rebar_config:get_global(Config, force, "0") of
"1" ->
rebar_file_utils:rm_rf(TargetDir),
ok = file:make_dir(TargetDir);
@@ -245,8 +247,8 @@ mk_target_dir(TargetDir) ->
end.
-dump_spec(Spec) ->
- case rebar_config:get_global(dump_spec, "0") of
+dump_spec(Config, Spec) ->
+ case rebar_config:get_global(Config, dump_spec, "0") of
"1" ->
SpecBin = list_to_binary(io_lib:print(Spec, 1, 120, -1)),
ok = file:write_file("reltool.spec", SpecBin);