diff options
author | feld <feld@feld.me> | 2024-05-16 20:37:37 +0000 |
---|---|---|
committer | feld <feld@feld.me> | 2024-05-16 20:37:37 +0000 |
commit | 7de657ac45e13f9809ad1fbd4b2429d2045e8f89 (patch) | |
tree | 87b44bcd0f7e04053662f2276b42e60485a68a60 | |
parent | e944b1529862a2a40158803da5fe04a024f7aa4f (diff) | |
parent | 7f8a9329e566140f9f36cecac58b13097b7e0519 (diff) | |
download | pleroma-7de657ac45e13f9809ad1fbd4b2429d2045e8f89.tar.gz pleroma-7de657ac45e13f9809ad1fbd4b2429d2045e8f89.zip |
Merge branch 'bad-mrf' into 'develop'
Startup detection for configured MRF modules that are missing or incorrectly defined
See merge request pleroma/pleroma!4110
-rw-r--r-- | changelog.d/missing-mrfs.add | 1 | ||||
-rw-r--r-- | lib/pleroma/application_requirements.ex | 22 |
2 files changed, 23 insertions, 0 deletions
diff --git a/changelog.d/missing-mrfs.add b/changelog.d/missing-mrfs.add new file mode 100644 index 000000000..6a17f9e1a --- /dev/null +++ b/changelog.d/missing-mrfs.add @@ -0,0 +1 @@ +Startup detection for configured MRF modules that are missing or incorrectly defined diff --git a/lib/pleroma/application_requirements.ex b/lib/pleroma/application_requirements.ex index 819245481..8c0df64fc 100644 --- a/lib/pleroma/application_requirements.ex +++ b/lib/pleroma/application_requirements.ex @@ -28,6 +28,7 @@ defmodule Pleroma.ApplicationRequirements do |> check_welcome_message_config!() |> check_rum!() |> check_repo_pool_size!() + |> check_mrfs() |> handle_result() end @@ -234,4 +235,25 @@ defmodule Pleroma.ApplicationRequirements do true end end + + defp check_mrfs(:ok) do + mrfs = Config.get!([:mrf, :policies]) + + missing_mrfs = + Enum.reduce(mrfs, [], fn x, acc -> + if Code.ensure_compiled(x) do + acc + else + acc ++ [x] + end + end) + + if Enum.empty?(missing_mrfs) do + :ok + else + {:error, "The following MRF modules are configured but missing: #{inspect(missing_mrfs)}"} + end + end + + defp check_mrfs(result), do: result end |