summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Sloughter <t@crashfast.com>2015-05-04 18:25:49 -0500
committerTristan Sloughter <t@crashfast.com>2015-05-04 18:25:49 -0500
commitbfd08c129d0e35e51d494309729f19ddb2e76eb7 (patch)
tree6bc07b97be8a7af4cc6d277ede98a662fb9f6770
parentce74589a56e14150493540302ce61d498cee0b27 (diff)
set resources of state in state initialize functions
-rw-r--r--src/rebar3.erl12
-rw-r--r--src/rebar_state.erl23
2 files changed, 20 insertions, 15 deletions
diff --git a/src/rebar3.erl b/src/rebar3.erl
index b0cc949..92803c5 100644
--- a/src/rebar3.erl
+++ b/src/rebar3.erl
@@ -127,19 +127,17 @@ run_aux(State, RawArgs) ->
filename:join(filename:absname(rebar_state:dir(State2)), BaseDir)),
{ok, Providers} = application:get_env(rebar, providers),
- {ok, Resources} = application:get_env(rebar, resources),
- State4 = rebar_state:resources(State3, Resources),
- State5 = rebar_plugins:install(State4),
+ State4 = rebar_plugins:install(State3),
%% Providers can modify profiles stored in opts, so set default after initializing providers
- State6 = rebar_state:create_logic_providers(Providers, State5),
- State7 = rebar_state:default(State6, rebar_state:opts(State6)),
+ State5 = rebar_state:create_logic_providers(Providers, State4),
+ State6 = rebar_state:default(State5, rebar_state:opts(State5)),
{Task, Args} = parse_args(RawArgs),
- State8 = rebar_state:code_paths(State7, default, code:get_path()),
+ State7 = rebar_state:code_paths(State6, default, code:get_path()),
- rebar_core:init_command(rebar_state:command_args(State8, Args), Task).
+ rebar_core:init_command(rebar_state:command_args(State7, Args), Task).
init_config() ->
%% Initialize logging system
diff --git a/src/rebar_state.erl b/src/rebar_state.erl
index 46c870e..9bf90d5 100644
--- a/src/rebar_state.erl
+++ b/src/rebar_state.erl
@@ -69,25 +69,28 @@
-spec new() -> t().
new() ->
- #state_t{dir = rebar_dir:get_cwd()}.
+ BaseState = base_state(),
+ BaseState#state_t{dir = rebar_dir:get_cwd()}.
-spec new(list()) -> t().
new(Config) when is_list(Config) ->
+ BaseState = base_state(),
Deps = proplists:get_value(deps, Config, []),
Opts = dict:from_list([{{deps, default}, Deps} | Config]),
- #state_t { dir = rebar_dir:get_cwd(),
- default = Opts,
- opts = Opts }.
+ BaseState#state_t { dir = rebar_dir:get_cwd(),
+ default = Opts,
+ opts = Opts }.
-spec new(t() | atom(), list()) -> t().
new(Profile, Config) when is_atom(Profile)
, is_list(Config) ->
+ BaseState = base_state(),
Deps = proplists:get_value(deps, Config, []),
Opts = dict:from_list([{{deps, default}, Deps} | Config]),
- #state_t { dir = rebar_dir:get_cwd(),
- current_profiles = [Profile],
- default = Opts,
- opts = Opts };
+ BaseState#state_t { dir = rebar_dir:get_cwd(),
+ current_profiles = [Profile],
+ default = Opts,
+ opts = Opts };
new(ParentState=#state_t{}, Config) ->
%% Load terms from rebar.config, if it exists
Dir = rebar_dir:get_cwd(),
@@ -113,6 +116,10 @@ new(ParentState, Config, Dir) ->
,opts=NewOpts
,default=NewOpts}.
+base_state() ->
+ {ok, Resources} = application:get_env(rebar, resources),
+ #state_t{resources=Resources}.
+
get(State, Key) ->
{ok, Value} = dict:find(Key, State#state_t.opts),
Value.