From 95c4565d078033c18561813c48c20de11ed9ab88 Mon Sep 17 00:00:00 2001
From: Konrad Kaplita <konrad.kaplita@gmail.com>
Date: Mon, 18 Nov 2013 13:54:07 +0100
Subject: Add option to skip release discovery

`rlx_prv_discover` provider recursively scans all directories in
`lib_dirs` list looking for `*.app` and `*.rel` files.

This commit adds an option `disable_rel_discovery` to skip searching for
`*.rel` files when we know there aren't any. This speeds up release
generation with a lot of dependencies on the `libs_dir` list
significantly and reduces total release generation time in half.
---
 test/rlx_discover_SUITE.erl | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

(limited to 'test')

diff --git a/test/rlx_discover_SUITE.erl b/test/rlx_discover_SUITE.erl
index e75ea36..0fb1ad7 100644
--- a/test/rlx_discover_SUITE.erl
+++ b/test/rlx_discover_SUITE.erl
@@ -110,10 +110,12 @@ no_beam_case(Config) ->
     AppDir = filename:join([LibDir2, BadName]),
     write_app_file(AppDir, BadName, BadVsn),
     State0 = proplists:get_value(state, Config),
-    {DiscoverProvider, {ok, State1}} = rlx_provider:new(rlx_prv_discover, State0),
+    %% Deliberately disable release discovery when running `rlx_prv_discover`
+    State1 = rlx_state:put(State0, disable_rel_discovery, true),
+    {DiscoverProvider, {ok, State2}} = rlx_provider:new(rlx_prv_discover, State1),
 
     ?assertMatch({ok, _},
-                 rlx_provider:do(DiscoverProvider, State1)).
+                 rlx_provider:do(DiscoverProvider, State2)).
 
 bad_ebin_case(Config) ->
     LibDir1 = proplists:get_value(lib1, Config),
-- 
cgit v1.2.3