diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/rebar_rel_utils.erl | 8 | ||||
| -rw-r--r-- | src/rebar_reltool.erl | 33 | 
2 files changed, 33 insertions, 8 deletions
| diff --git a/src/rebar_rel_utils.erl b/src/rebar_rel_utils.erl index 085dbd9..5d99948 100644 --- a/src/rebar_rel_utils.erl +++ b/src/rebar_rel_utils.erl @@ -37,6 +37,7 @@           get_rel_file_path/2,           load_config/2,           get_sys_tuple/1, +         get_excl_lib_tuple/1,           get_target_dir/2,           get_root_dir/2,           get_target_parent_dir/2]). @@ -144,6 +145,13 @@ get_sys_tuple(ReltoolConfig) ->      end.  %% +%% Look for the {excl_lib, ...} tuple in sys tuple of the reltool.config file. +%% Without this present, return false. +%% +get_excl_lib_tuple(ReltoolConfig) -> +    lists:keyfind(excl_lib, 1, element(2, get_sys_tuple(ReltoolConfig))). + +%%  %% Look for {target_dir, TargetDir} in the reltool config file; if none is  %% found, use the name of the release as the default target directory.  %% diff --git a/src/rebar_reltool.erl b/src/rebar_reltool.erl index 9f9488e..fdaa7e0 100644 --- a/src/rebar_reltool.erl +++ b/src/rebar_reltool.erl @@ -147,15 +147,12 @@ process_overlay(Config, ReltoolConfig) ->                                                      OverlayVars1),      %% Finally, overlay the files specified by the overlay section -    case lists:keyfind(overlay, 1, ReltoolConfig) of -        {overlay, Overlay} when is_list(Overlay) -> +    case overlay_files(ReltoolConfig) of +        [] -> +            ok; +        Overlay ->              execute_overlay(Overlay, OverlayVars, rebar_utils:get_cwd(), -                            TargetDir); -        false -> -            ?INFO("No {overlay, [...]} found in reltool.config.\n", []); -        _ -> -            ?ABORT("{overlay, [...]} entry in reltool.config " -                   "must be a list.\n", []) +                            TargetDir)      end.  %% @@ -292,6 +289,26 @@ dump_spec(Config, Spec) ->      end. +overlay_files(ReltoolConfig) -> +    Original = case lists:keyfind(overlay, 1, ReltoolConfig) of +                   {overlay, Overlay} when is_list(Overlay) -> +                       Overlay; +                   false -> +                       ?INFO("No {overlay, [...]} found in reltool.config.\n", []), +                       []; +                   _ -> +                       ?ABORT("{overlay, [...]} entry in reltool.config " +                              "must be a list.\n", []) +               end, +    SlimAddition = case rebar_rel_utils:get_excl_lib_tuple(ReltoolConfig) of +                       {excl_lib, otp_root} -> +                           [{create, "releases/{{rel_vsn}}/runner_script.data", +                             "slim\n"}]; +                       false -> +                           [] +                   end, +    Original ++ SlimAddition. +  %% TODO: Merge functionality here with rebar_templater  execute_overlay([], _Vars, _BaseDir, _TargetDir) -> | 
