diff options
author | Tristan Sloughter <t@crashfast.com> | 2019-06-26 10:23:48 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-26 10:23:48 -0600 |
commit | d752e2787007991d59de143087bf9bafe47e0402 (patch) | |
tree | 02ad1a9e0fe2948d9f60525336d3656b8e77044e | |
parent | f23e5a423347c0b04d8513410132a875f3767340 (diff) | |
parent | 86bc08d164dfd84a1633597044fa64de81e18383 (diff) |
Merge pull request #2110 from saleyn/master
Make missing file report more comprehensive
-rw-r--r-- | src/rebar_compiler_erl.erl | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/rebar_compiler_erl.erl b/src/rebar_compiler_erl.erl index 1ad16d8..a39e906 100644 --- a/src/rebar_compiler_erl.erl +++ b/src/rebar_compiler_erl.erl @@ -6,9 +6,11 @@ needed_files/4, dependencies/3, compile/4, - clean/2]). + clean/2, + format_error/1]). -include("rebar.hrl"). +-include_lib("providers/include/providers.hrl"). context(AppInfo) -> EbinDir = rebar_app_info:ebin_dir(AppInfo), @@ -74,11 +76,15 @@ needed_files(Graph, FoundFiles, _, AppInfo) -> {OtherErls, ErlOpts ++ AdditionalOpts}}. dependencies(Source, SourceDir, Dirs) -> - {ok, Fd} = file:open(Source, [read]), - Incls = parse_attrs(Fd, [], SourceDir), - AbsIncls = expand_file_names(Incls, Dirs), - ok = file:close(Fd), - AbsIncls. + case file:open(Source, [read]) of + {ok, Fd} -> + Incls = parse_attrs(Fd, [], SourceDir), + AbsIncls = expand_file_names(Incls, Dirs), + ok = file:close(Fd), + AbsIncls; + {error, Reason} -> + throw(?PRV_ERROR({cannot_read_file, Source, file:format_error(Reason)})) + end. compile(Source, [{_, OutDir}], Config, ErlOpts) -> case compile:file(Source, [{outdir, OutDir} | ErlOpts]) of @@ -363,3 +369,8 @@ warn_and_find_path(File, Dir) -> [] end end. + +format_error({cannot_read_file, Source, Reason}) -> + lists:flatten(io_lib:format("Cannot read file '~s': ~s", [Source, Reason])); +format_error(Other) -> + io_lib:format("~p", [Other]). |