From 94b5717359ebc9492dedce8086cfa4447a04eaeb Mon Sep 17 00:00:00 2001 From: TavernGoal Date: Sat, 19 Dec 2020 13:26:56 +0800 Subject: [PATCH] Update release.ex fix 'ExLoader.Release.get_path' on remote machine, not local - add param `remote_node` to function `get_paths ` - `File.ls!` should be `:rpc.call(remote_node, File, :ls!, [parent])` - `File.dir?` should be :rpc.call(remote_node, File, :dir?, [p]) --- lib/release.ex | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/release.ex b/lib/release.ex index a1f3363..2a6caa9 100644 --- a/lib/release.ex +++ b/lib/release.ex @@ -39,7 +39,7 @@ defmodule ExLoader.Release do defp add_paths(remote_node, base, apps) do paths = - Enum.map(get_paths(base, apps), fn p -> + Enum.map(get_paths(base, apps, remote_node), fn p -> :rpc.call(remote_node, :code, :add_path, [to_charlist(p)]) p end) @@ -67,15 +67,16 @@ defmodule ExLoader.Release do end) end - defp get_paths(base, apps) do + defp get_paths(base, apps, remote_node) do apps |> Enum.map(fn app -> parent = Path.join(base, "lib/#{elem(app, 0)}-#{elem(app, 1)}") - parent - |> File.ls!() + :rpc.call(remote_node, File, :ls!, [parent]) |> Enum.map(&Path.join(parent, &1)) - |> Enum.filter(fn p -> File.dir?(p) and Path.basename(p) != "priv" end) + |> Enum.filter(fn p -> + :rpc.call(remote_node, File, :dir?, [p]) and Path.basename(p) != "priv" + end) end) |> List.flatten() end