summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2024-11-21 13:15:33 +0000
committerlain <lain@soykaf.club>2024-11-21 13:15:33 +0000
commit2482d561536d4c37eacf7a57503ea9e888ecd1f4 (patch)
tree5685028f1f07bbf401de66c45e544f304e0f2401 /lib
parentdcb0c47773c0bcb8162f9d6100e8a6a3a1ae36c7 (diff)
parent14dbf789b3e0e84f588999954f07a378a6ccfcf6 (diff)
downloadpleroma-2482d561536d4c37eacf7a57503ea9e888ecd1f4.tar.gz
pleroma-2482d561536d4c37eacf7a57503ea9e888ecd1f4.zip
Merge branch 'fix-module-search-in-pleroma-ctl' into 'develop'
B ReleaseTasks: Fix task module finding. See merge request pleroma/pleroma!4297
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/release_tasks.ex23
1 files changed, 15 insertions, 8 deletions
diff --git a/lib/pleroma/release_tasks.ex b/lib/pleroma/release_tasks.ex
index bcfcd1243..af2d35c8f 100644
--- a/lib/pleroma/release_tasks.ex
+++ b/lib/pleroma/release_tasks.ex
@@ -16,17 +16,24 @@ defmodule Pleroma.ReleaseTasks do
end
end
+ def find_module(task) do
+ module_name =
+ task
+ |> String.split(".")
+ |> Enum.map(&String.capitalize/1)
+ |> then(fn x -> [Mix, Tasks, Pleroma] ++ x end)
+ |> Module.concat()
+
+ case Code.ensure_loaded(module_name) do
+ {:module, _} -> module_name
+ _ -> nil
+ end
+ end
+
defp mix_task(task, args) do
Application.load(:pleroma)
- {:ok, modules} = :application.get_key(:pleroma, :modules)
-
- module =
- Enum.find(modules, fn module ->
- module = Module.split(module)
- match?(["Mix", "Tasks", "Pleroma" | _], module) and
- String.downcase(List.last(module)) == task
- end)
+ module = find_module(task)
if module do
module.run(args)