Merge branch 'restart-fix-for-mix-tasks' into 'develop'
authorrinpatch <rinpatch@sdf.org>
Sat, 7 Mar 2020 09:32:29 +0000 (09:32 +0000)
committerrinpatch <rinpatch@sdf.org>
Sat, 7 Mar 2020 09:32:29 +0000 (09:32 +0000)
Wait in mix task while pleroma is rebooted

See merge request pleroma/pleroma!2225

1  2 
lib/mix/pleroma.ex
lib/pleroma/config/transfer_task.ex

diff --combined lib/mix/pleroma.ex
index 90f8c80081dfe1380c3c792db3acd89706151436,d2e443fdc624d5a4b422f974a20d4e30737a46d5..3ad6edbfbb659d5830d4abb2ce83d0e82b038b16
@@@ -1,5 -1,5 +1,5 @@@
  # Pleroma: A lightweight social networking server
 -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
 +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
  # SPDX-License-Identifier: AGPL-3.0-only
  
  defmodule Mix.Pleroma do
      end
  
      {:ok, _} = Application.ensure_all_started(:pleroma)
+     if Pleroma.Config.get(:env) not in [:test, :benchmark] do
+       pleroma_rebooted?()
+     end
+   end
+   defp pleroma_rebooted? do
+     if Restarter.Pleroma.rebooted?() do
+       :ok
+     else
+       Process.sleep(10)
+       pleroma_rebooted?()
+     end
    end
  
    def load_pleroma do
index 1846aa22cfcf4ef5cf4db1e13534343b61666729,01a3de05f42c2da61ba74faf7871626d4d56592f..435fc7450b39dd6f634c2ecf5163aa71a59f0cfb
@@@ -1,5 -1,5 +1,5 @@@
  # Pleroma: A lightweight social networking server
 -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
 +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
  # SPDX-License-Identifier: AGPL-3.0-only
  
  defmodule Pleroma.Config.TransferTask do
@@@ -42,7 -42,8 +42,8 @@@
  
    @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
          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