Skip to content

Commit c705958

Browse files
committed
fix: check for epmd on expert startup
1 parent bd3839a commit c705958

File tree

2 files changed

+21
-17
lines changed

2 files changed

+21
-17
lines changed

apps/expert/lib/expert/application.ex

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,8 @@ defmodule Expert.Application do
6464
System.halt(1)
6565
end
6666

67+
ensure_epmd_module!()
68+
6769
children = [
6870
{Forge.NodePortMapper, []},
6971
document_store_child_spec(),
@@ -90,4 +92,23 @@ defmodule Expert.Application do
9092
def document_store_child_spec do
9193
{Document.Store, derive: [analysis: &Forge.Ast.analyze/1]}
9294
end
95+
96+
def ensure_epmd_module! do
97+
epmd_module = to_charlist(Forge.EPMD)
98+
99+
case :init.get_argument(:epmd_module) do
100+
{:ok, [[^epmd_module]]} ->
101+
:ok
102+
103+
_ ->
104+
Application.put_env(:kernel, :epmd_module, Forge.EPMD, persistent: true)
105+
106+
# Note: this is a private API
107+
if :net_kernel.epmd_module() != Forge.EPMD do
108+
raise("""
109+
you must set the environment variable ELIXIR_ERL_OPTIONS="-epmd_module #{Forge.EPMD}"
110+
""")
111+
end
112+
end
113+
end
93114
end

apps/expert/lib/expert/engine_node.ex

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -28,23 +28,6 @@ defmodule Expert.EngineNode do
2828
@dialyzer {:nowarn_function, start: 3}
2929

3030
def start(%__MODULE__{} = state, paths, from) do
31-
epmd_module = to_charlist(Forge.EPMD)
32-
33-
case :init.get_argument(:epmd_module) do
34-
{:ok, [[^epmd_module]]} ->
35-
:ok
36-
37-
_ ->
38-
Application.put_env(:kernel, :epmd_module, Forge.EPMD, persistent: true)
39-
40-
# Note: this is a private API
41-
if :net_kernel.epmd_module() != Forge.EPMD do
42-
raise("""
43-
you must set the environment variable ELIXIR_ERL_OPTIONS="-epmd_module #{Forge.EPMD}"
44-
""")
45-
end
46-
end
47-
4831
this_node = to_string(Node.self())
4932
dist_port = Forge.EPMD.dist_port()
5033

0 commit comments

Comments
 (0)