Hi! In my case relx used inside Elixir mix. When I try to build project with MIX_ENV=prod mix release I've following error:
MIX_ENV=prod mix release
Building release with MIX_ENV=prod.
** (MatchError) no match of right hand side value: {:error, :enoent}
/projects/sferosoft/barcode_reader/deps/relx/src/rlx_prv_assembler.erl:510: :rlx_prv_assembler.include_erts/4
/projects/sferosoft/barcode_reader/deps/relx/src/rlx_prv_assembler.erl:59: :rlx_prv_assembler.do/1
/projects/sferosoft/barcode_reader/deps/relx/src/relx.erl:308: :relx.run_provider/2
(stdlib) lists.erl:1263: :lists.foldl/3
/projects/sferosoft/barcode_reader/deps/relx/src/relx.erl:291: :relx.run_providers_for_actions/2
lib/exrm/utils/utils.ex:105: ReleaseManager.Utils.relx/5
lib/mix/tasks/release.ex:339: anonymous fn/4 in Mix.Tasks.Release.do_release/1
lib/ex_unit/capture_io.ex:146: ExUnit.CaptureIO.do_capture_io/2
After some digging in rlx_prv_assembler.erl code I've found that error produced by ec_file:remove(SrcDir, [recursive]) function that used to remove erts sources, but in my case there are no src subfolder at all so where should be some check for folder existence before remove it.
As a workaround I've changed line 510 of rlx_prv_assembler.erl to:
case ec_file:exists(SrcDir) of
true -> ok = ec_file:remove(SrcDir, [recursive]);
_ -> ok
end
Hi! In my case
relx
used inside Elixirmix
. When I try to build project withMIX_ENV=prod mix release
I've following error:After some digging in
rlx_prv_assembler.erl
code I've found that error produced byec_file:remove(SrcDir, [recursive])
function that used to remove erts sources, but in my case there are no src subfolder at all so where should be some check for folder existence before remove it.As a workaround I've changed line 510 of
rlx_prv_assembler.erl
to:If it looks reasonable I can prepare PR.
Regards