diff options
| -rw-r--r-- | src/rebar_app_discover.erl | 6 | ||||
| -rw-r--r-- | src/rebar_app_info.erl | 22 | ||||
| -rw-r--r-- | src/rebar_prv_install_deps.erl | 21 | ||||
| -rw-r--r-- | src/rebar_utils.erl | 4 | 
4 files changed, 24 insertions, 29 deletions
| diff --git a/src/rebar_app_discover.erl b/src/rebar_app_discover.erl index 7713ee6..a4cfe4c 100644 --- a/src/rebar_app_discover.erl +++ b/src/rebar_app_discover.erl @@ -55,7 +55,7 @@ find_apps(LibDirs, Validate) ->                                    find_app(AppDir, Validate)                            end, all_app_dirs(LibDirs)). --spec find_app(list(), boolean()) -> rebar_app_info:t() | false. +-spec find_app(file:filename_all(), valid | invalid | all) -> {true, rebar_app_info:t()} | false.  find_app(AppDir, Validate) ->      AppFile = filelib:wildcard(filename:join([AppDir, "ebin", "*.app"])),      AppSrcFile = filelib:wildcard(filename:join([AppDir, "src", "*.app.src"])), @@ -140,7 +140,7 @@ validate_application_info(AppInfo) ->              false      end. --spec get_modules_list(file:name(), proplists:proplist()) -> +-spec get_modules_list(file:filename_all(), proplists:proplist()) ->                                {ok, list()} |                                {warning, Reason::term()} |                                {error, Reason::term()}. @@ -152,7 +152,7 @@ get_modules_list(AppFile, AppDetail) ->              {ok, ModulesList}      end. --spec has_all_beams(file:name(), list()) -> boolean(). +-spec has_all_beams(file:filename_all(), list()) -> boolean().  has_all_beams(EbinDir, [Module | ModuleList]) ->      BeamFile = filename:join([EbinDir,                                ec_cnv:to_list(Module) ++ ".beam"]), diff --git a/src/rebar_app_info.erl b/src/rebar_app_info.erl index be35f79..ac668e2 100644 --- a/src/rebar_app_info.erl +++ b/src/rebar_app_info.erl @@ -33,9 +33,9 @@  -export_type([t/0]).  -record(app_info_t, {name :: binary(), -                     app_file_src :: file:name() | undefined, -                     app_file :: file:name(), -                     config :: rebar_config:config() | undefined, +                     app_file_src :: file:filename_all() | undefined, +                     app_file :: file:filename_all() | undefined, +                     config :: rebar_state:t() | undefined,                       original_vsn :: string() | undefined,                       app_details=[] :: list(),                       deps=[] :: list(), @@ -87,7 +87,7 @@ new(AppName, Vsn, Dir, Deps) ->                       deps=Deps}}.  %% @doc discover a complete version of the app info with all fields set. --spec discover(file:name()) -> {ok, t()} | not_found. +-spec discover(file:filename_all()) -> {ok, t()} | not_found.  discover(Dir) ->      case rebar_app_discover:find_app(Dir, all) of          {true, AppInfo} -> @@ -104,15 +104,15 @@ name(#app_info_t{name=Name}) ->  name(AppInfo=#app_info_t{}, AppName) ->      AppInfo#app_info_t{name=ec_cnv:to_binary(AppName)}. --spec config(t()) -> rebar_config:confg(). +-spec config(t()) -> rebar_state:t().  config(#app_info_t{config=Config}) ->      Config. --spec config(t(), rebar_config:confg()) -> t(). +-spec config(t(), rebar_state:t()) -> t().  config(AppInfo=#app_info_t{}, Config) ->      AppInfo#app_info_t{config=Config}. --spec app_file_src(t()) -> file:name(). +-spec app_file_src(t()) -> file:filename_all() | undefined.  app_file_src(#app_info_t{app_file_src=undefined, dir=Dir, name=Name}) ->      AppFileSrc = filename:join([ec_cnv:to_list(Dir), "src", ec_cnv:to_list(Name)++".app.src"]),      case filelib:is_file(AppFileSrc) of @@ -124,11 +124,11 @@ app_file_src(#app_info_t{app_file_src=undefined, dir=Dir, name=Name}) ->  app_file_src(#app_info_t{app_file_src=AppFileSrc}) ->      ec_cnv:to_list(AppFileSrc). --spec app_file_src(t(), file:name()) -> t(). +-spec app_file_src(t(), file:filename_all()) -> t().  app_file_src(AppInfo=#app_info_t{}, AppFileSrc) ->      AppInfo#app_info_t{app_file_src=ec_cnv:to_list(AppFileSrc)}. --spec app_file(t()) -> file:name(). +-spec app_file(t()) -> file:filename_all() | undefined.  app_file(#app_info_t{app_file=undefined, dir=Dir, name=Name}) ->      AppFile = filename:join([ec_cnv:to_list(Dir), "ebin", ec_cnv:to_list(Name)++".app"]),      case filelib:is_file(AppFile) of @@ -140,9 +140,9 @@ app_file(#app_info_t{app_file=undefined, dir=Dir, name=Name}) ->  app_file(#app_info_t{app_file=AppFile}) ->      AppFile. --spec app_file(t(), file:name()) -> t(). +-spec app_file(t(), file:filename_all()) -> t().  app_file(AppInfo=#app_info_t{}, AppFile) -> -    AppInfo#app_info_t{app_file=ec_cnv:to_list(AppFile)}. +    AppInfo#app_info_t{app_file=AppFile}.  -spec app_details(t()) -> list().  app_details(#app_info_t{app_details=AppDetails}) -> diff --git a/src/rebar_prv_install_deps.erl b/src/rebar_prv_install_deps.erl index daae204..9180cc4 100644 --- a/src/rebar_prv_install_deps.erl +++ b/src/rebar_prv_install_deps.erl @@ -114,11 +114,10 @@ handle_deps(State, Deps, Update) ->                       %% Find binary deps needed                       {ok, S} = rlx_depsolver:solve(Graph, BinaryDeps1),                       %% Create app_info record for each binary dep -                     lists:map(fun({Name, Vsn}) -> +                     lists:map(fun(Pkg) ->                                         AppInfo = package_to_app(DepsDir                                                                 ,Packages -                                                               ,Name -                                                               ,Vsn), +                                                               ,Pkg),                                         maybe_fetch(AppInfo, Update),                                         AppInfo                                 end, S) @@ -127,7 +126,7 @@ handle_deps(State, Deps, Update) ->      AllDeps = lists:keymerge(2                              ,rebar_state:src_apps(State2)                              ,Solved), -    io:format("All ~p~n", [AllDeps]), +      %% Sort all apps to build order      State3 = rebar_state:set(State2, all_deps, AllDeps),      {ok, State3}. @@ -141,15 +140,11 @@ handle_deps(State, Deps, Update) ->  is_valid(App) ->      rebar_app_info:valid(App). --spec package_to_app(file:filename_all(), dict:dict(), rlx_depsolver:name(), rlx_depsolver:vsn()) -> rebar_app_info:t(). -package_to_app(DepsDir, Packages, Name, Vsn) -> -    FmtVsn = case Vsn of -                 'NO_VSN' -> -                     <<"NO_VSN">>; -                 _ -> -                     iolist_to_binary(rlx_depsolver:format_version(Vsn)) -             end, - +-spec package_to_app(file:filename_all(), dict:dict(), +                    rlx_depsolver:pkg()) -> rebar_app_info:t(). +package_to_app(DepsDir, Packages, Pkg={_, Vsn}) -> +    Name = ec_cnv:to_binary(rlx_depsolver:dep_pkg(Pkg)), +    FmtVsn = iolist_to_binary(rlx_depsolver:format_version(Vsn)),      {ok, P} = dict:find({Name, FmtVsn}, Packages),      PkgDeps = proplists:get_value(<<"deps">>, P),      Link = proplists:get_value(<<"link">>, P), diff --git a/src/rebar_utils.erl b/src/rebar_utils.erl index 742cad2..5397aa8 100644 --- a/src/rebar_utils.erl +++ b/src/rebar_utils.erl @@ -325,7 +325,7 @@ delayed_halt(Code) ->      end.  %% @doc Return list of erl_opts --spec erl_opts(rebar_state:config()) -> list(). +-spec erl_opts(rebar_state:t()) -> list().  erl_opts(Config) ->      RawErlOpts = filter_defines(rebar_state:get(Config, erl_opts, []), []),      Defines = [{d, list_to_atom(D)} || @@ -359,7 +359,7 @@ processing_base_dir(State, Dir) ->  %% 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_state:config(), [{string(), string()}]) +-spec patch_env(rebar_state:t(), [{string(), string()}])                 -> [{string(), string()}].  patch_env(Config, []) ->      %% If we reached an empty list, the env did not contain the REBAR variable. | 
