diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/rabbit_hipe.erl | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/rabbit_hipe.erl b/src/rabbit_hipe.erl index b869b824df..bb13a3baf4 100644 --- a/src/rabbit_hipe.erl +++ b/src/rabbit_hipe.erl @@ -38,8 +38,12 @@ hipe_compile() -> compile_to_directory(Dir0) -> Dir = rabbit_file:filename_as_a_directory(rabbit_data_coercion:to_list(Dir0)), - ok = prepare_ebin_directory(Dir), - hipe_compile(fun (Mod) -> compile_and_save(Mod, Dir) end, true). + 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), |
