mirror of
https://github.com/correl/rebar.git
synced 2024-11-23 19:19:54 +00:00
Merge pull request #229 from tolbrino/tb-patch-env
Add REBAR to environment before executing hooks
This commit is contained in:
commit
9380583f6c
2 changed files with 21 additions and 2 deletions
|
@ -496,8 +496,9 @@ run_modules([Module | Rest], Command, Config, File) ->
|
||||||
{Module, Error}
|
{Module, Error}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
apply_hooks(Mode, Config, Command, Env) ->
|
apply_hooks(Mode, Config, Command, Env0) ->
|
||||||
Hooks = rebar_config:get_local(Config, Mode, []),
|
Hooks = rebar_config:get_local(Config, Mode, []),
|
||||||
|
Env = rebar_utils:patch_env(Config, Env0),
|
||||||
lists:foreach(fun apply_hook/1,
|
lists:foreach(fun apply_hook/1,
|
||||||
[{Env, Hook} || Hook <- Hooks,
|
[{Env, Hook} || Hook <- Hooks,
|
||||||
element(1, Hook) =:= Command orelse
|
element(1, Hook) =:= Command orelse
|
||||||
|
|
|
@ -54,7 +54,8 @@
|
||||||
src_dirs/1,
|
src_dirs/1,
|
||||||
ebin_dir/0,
|
ebin_dir/0,
|
||||||
base_dir/1,
|
base_dir/1,
|
||||||
processing_base_dir/1, processing_base_dir/2]).
|
processing_base_dir/1, processing_base_dir/2,
|
||||||
|
patch_env/2]).
|
||||||
|
|
||||||
-include("rebar.hrl").
|
-include("rebar.hrl").
|
||||||
|
|
||||||
|
@ -338,6 +339,23 @@ processing_base_dir(Config, Dir) ->
|
||||||
AbsDir = filename:absname(Dir),
|
AbsDir = filename:absname(Dir),
|
||||||
AbsDir =:= base_dir(Config).
|
AbsDir =:= base_dir(Config).
|
||||||
|
|
||||||
|
%% @doc Returns the list of environment variables including 'REBAR' which points to the
|
||||||
|
%% rebar executable used to execute the currently running command. The environment is
|
||||||
|
%% not modified if rebar was invoked programmatically.
|
||||||
|
-spec patch_env(rebar_config:config(), [{string(), string()}]) -> [{string(), string()}].
|
||||||
|
patch_env(Config, []) ->
|
||||||
|
% if we reached an empty list the env did not contain the REBAR variable
|
||||||
|
case rebar_config:get_xconf(Config, escript, "") of
|
||||||
|
"" -> % rebar was invoked programmatically
|
||||||
|
[];
|
||||||
|
Path ->
|
||||||
|
[{"REBAR", Path}]
|
||||||
|
end;
|
||||||
|
patch_env(_Config, [{"REBAR", _} | _]=All) ->
|
||||||
|
All;
|
||||||
|
patch_env(Config, [E | Rest]) ->
|
||||||
|
[E | patch_env(Config, Rest)].
|
||||||
|
|
||||||
%% ====================================================================
|
%% ====================================================================
|
||||||
%% Internal functions
|
%% Internal functions
|
||||||
%% ====================================================================
|
%% ====================================================================
|
||||||
|
|
Loading…
Reference in a new issue