wait in mix task while pleroma is rebooted
[akkoma] / lib / pleroma / config / transfer_task.ex
index 6c5ba1f95ca040107bcf026c904ed6467e530e3d..01a3de05f42c2da61ba74faf7871626d4d56592f 100644 (file)
@@ -42,7 +42,8 @@ defmodule Pleroma.Config.TransferTask do
 
   @spec load_and_update_env([ConfigDB.t()]) :: :ok | false
   def load_and_update_env(deleted \\ [], restart_pleroma? \\ true) do
-    with true <- Pleroma.Config.get(:configurable_from_database),
+    with {:configurable, true} <-
+           {:configurable, Pleroma.Config.get(:configurable_from_database)},
          true <- Ecto.Adapters.SQL.table_exists?(Repo, "config"),
          started_applications <- Application.started_applications() do
       # We need to restart applications for loaded settings take effect
@@ -65,12 +66,15 @@ defmodule Pleroma.Config.TransferTask do
         if :pleroma in applications do
           List.delete(applications, :pleroma) ++ [:pleroma]
         else
+          Restarter.Pleroma.rebooted()
           applications
         end
 
       Enum.each(applications, &restart(started_applications, &1, Pleroma.Config.get(:env)))
 
       :ok
+    else
+      {:configurable, false} -> Restarter.Pleroma.rebooted()
     end
   end
 
@@ -146,9 +150,7 @@ defmodule Pleroma.Config.TransferTask do
   defp update_env(group, key, nil), do: Application.delete_env(group, key)
   defp update_env(group, key, value), do: Application.put_env(group, key, value)
 
-  defp restart(_, :pleroma, :test), do: Logger.warn("pleroma restarted")
-
-  defp restart(_, :pleroma, _), do: send(Restarter.Pleroma, :after_boot)
+  defp restart(_, :pleroma, env), do: Restarter.Pleroma.restart_after_boot(env)
 
   defp restart(started_applications, app, _) do
     with {^app, _, _} <- List.keyfind(started_applications, app, 0),