summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDaniil Fedotov <hairyhum@gmail.com>2017-03-14 17:13:22 +0000
committerGitHub <noreply@github.com>2017-03-14 17:13:22 +0000
commita47be165587bc180398a6670d2cc72fdaaf92233 (patch)
treec2040b8327ea7aba9819011252c08eae105db061 /src
parent0488e1df09ca3f90d52aca69a983c34a9843fc0c (diff)
parent2f909df3dc3750f8cb6b1a9854c2ccd6ff6c661a (diff)
downloadrabbitmq-server-git-a47be165587bc180398a6670d2cc72fdaaf92233.tar.gz
Merge pull request #1144 from rabbitmq/rabbitmq-cli-178
rabbit_hipe:compile_to_directory/1 should coerce argument to list
Diffstat (limited to 'src')
-rw-r--r--src/rabbit_hipe.erl20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/rabbit_hipe.erl b/src/rabbit_hipe.erl
index 6957d85cb4..bb13a3baf4 100644
--- a/src/rabbit_hipe.erl
+++ b/src/rabbit_hipe.erl
@@ -37,9 +37,13 @@ hipe_compile() ->
hipe_compile(fun compile_and_load/1, false).
compile_to_directory(Dir0) ->
- Dir = rabbit_file:filename_as_a_directory(Dir0),
- ok = prepare_ebin_directory(Dir),
- hipe_compile(fun (Mod) -> compile_and_save(Mod, Dir) end, true).
+ Dir = rabbit_file:filename_as_a_directory(rabbit_data_coercion:to_list(Dir0)),
+ case prepare_ebin_directory(Dir) of
+ ok ->
+ hipe_compile(fun (Mod) -> compile_and_save(Mod, Dir) end, true);
+ {error, Err} ->
+ {error, Err}
+ end.
needs_compilation(Mod, Force) ->
Exists = code:which(Mod) =/= non_existing,
@@ -110,9 +114,13 @@ split0([], Ls) -> Ls;
split0([I | Is], [L | Ls]) -> split0(Is, Ls ++ [[I | L]]).
prepare_ebin_directory(Dir) ->
- ok = rabbit_file:ensure_dir(Dir),
- ok = delete_beam_files(Dir),
- ok.
+ case rabbit_file:ensure_dir(Dir) of
+ ok ->
+ ok = delete_beam_files(Dir),
+ ok;
+ {error, eperm} ->
+ {error, eperm}
+ end.
delete_beam_files(Dir) ->
{ok, Files} = file:list_dir(Dir),