summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Avdey <eiri@eiri.ca>2018-01-04 13:16:49 -0400
committerGitHub <noreply@github.com>2018-01-04 13:16:49 -0400
commit1456f3e96082a58519f60b880291ec136468b67a (patch)
treec21d40973313efd17abff34677812da6b1ae7d70
parent0dfbad5c9e3f85ce83166229f5c646986b8bc42f (diff)
parentf71daa20d4b5d521a59290363293dfa2b18802f0 (diff)
downloadcouchdb-better-mango-test-recreate-function.tar.gz
Merge branch 'master' into better-mango-test-recreate-functionbetter-mango-test-recreate-function
-rw-r--r--rel/plugins/eunit_plugin.erl20
1 files changed, 20 insertions, 0 deletions
diff --git a/rel/plugins/eunit_plugin.erl b/rel/plugins/eunit_plugin.erl
index bbf83d2ec..1de20b394 100644
--- a/rel/plugins/eunit_plugin.erl
+++ b/rel/plugins/eunit_plugin.erl
@@ -32,8 +32,28 @@ build_eunit_config(Config0, AppFile) ->
Cwd = filename:absname(rebar_utils:get_cwd()),
DataDir = Cwd ++ "/tmp/data",
ViewIndexDir = Cwd ++ "/tmp/data",
+ TmpDataDir = Cwd ++ "/tmp/tmp_data",
+ cleanup_dirs([DataDir, TmpDataDir]),
Config1 = rebar_config:set_global(Config0, template, "setup_eunit"),
Config2 = rebar_config:set_global(Config1, prefix, Cwd),
Config3 = rebar_config:set_global(Config2, data_dir, DataDir),
Config = rebar_config:set_global(Config3, view_index_dir, ViewIndexDir),
rebar_templater:create(Config, AppFile).
+
+
+cleanup_dirs(Dirs) ->
+ lists:foreach(fun(Dir) ->
+ case filelib:is_dir(Dir) of
+ true -> del_dir(Dir);
+ false -> ok
+ end
+ end, Dirs).
+
+
+del_dir(Dir) ->
+ All = filelib:wildcard(Dir ++ "/**"),
+ {Dirs, Files} = lists:partition(fun filelib:is_dir/1, All),
+ ok = lists:foreach(fun file:delete/1, Files),
+ SortedDirs = lists:sort(fun(A, B) -> length(A) > length(B) end, Dirs),
+ ok = lists:foreach(fun file:del_dir/1, SortedDirs),
+ ok = file:del_dir(Dir).