Skip to content

Instantly share code, notes, and snippets.

@scottming
Forked from ityonemo/start_peer.exs
Created March 13, 2023 02:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save scottming/d198f6f5e437265bc8d8bfaa906fa71f to your computer and use it in GitHub Desktop.
Save scottming/d198f6f5e437265bc8d8bfaa906fa71f to your computer and use it in GitHub Desktop.
starts a BEAM peer node
:net_kernel.start([:"main@127.0.0.1"])
:erlang.set_cookie(:cook)
{:ok, peer, peername} =
:peer.start(%{connection: 0, name: :peer, host: ~C'127.0.0.1'})
:peer.call(peer, :erlang, :set_cookie, [:cook])
Node.connect(peername)
# add code paths
:rpc.call(peername, :code, :add_paths, [:code.get_path()])
# setup all application config
for {app_name, _, _} <- Application.loaded_applications() do
for {key, val} <- Application.get_all_env(app_name) do
:rpc.call(peername, Application, :put_env, [app_name, key, val])
end
end
# start all applications
:rpc.call(peername, Application, :ensure_all_started, [:mix])
:rpc.call(peername, Mix, :env, [Mix.env()])
for {app_name, _, _} <- Application.loaded_applications() do
:rpc.call(peername, Application, :ensure_all_started, [app_name])
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment