hiding raise error logic to otp_version module
authorAlexander Strizhakov <alex.strizhakov@gmail.com>
Tue, 3 Mar 2020 10:24:19 +0000 (13:24 +0300)
committerAlexander Strizhakov <alex.strizhakov@gmail.com>
Tue, 3 Mar 2020 10:24:19 +0000 (13:24 +0300)
lib/pleroma/application.ex
lib/pleroma/otp_version.ex

index 9b228d6b9a8cb9c6527a91bec55d9f2c457bfd64..d0b9c3c41dad575d6fd33567b887cec9e01e8f76 100644 (file)
@@ -42,6 +42,10 @@ defmodule Pleroma.Application do
     setup_instrumenters()
     load_custom_modules()
 
+    if adapter() == Tesla.Adapter.Gun do
+      Pleroma.OTPVersion.check!()
+    end
+
     # Define workers and child supervisors to be supervised
     children =
       [
@@ -66,25 +70,6 @@ defmodule Pleroma.Application do
           Pleroma.Gopher.Server
         ]
 
-    if adapter() == Tesla.Adapter.Gun do
-      case Pleroma.OTPVersion.check() do
-        :ok ->
-          :ok
-
-        {:error, version} ->
-          raise "
-            !!!OTP VERSION WARNING!!!
-            You are using gun adapter with OTP version #{version}, which doesn't support correct handling of unordered certificates chains.
-            "
-
-        :undefined ->
-          raise "
-            !!!OTP VERSION WARNING!!!
-            To support correct handling of unordered certificates chains - OTP version must be > 22.2.
-            "
-      end
-    end
-
     # See http://elixir-lang.org/docs/stable/elixir/Supervisor.html
     # for other strategies and supported options
     opts = [strategy: :one_for_one, name: Pleroma.Supervisor]
index 54ceaff479ba6baf9186257e85654ab56a0812c8..9ced2d27d593b7c3495cef9a1528be036a5dcdae 100644 (file)
@@ -5,6 +5,26 @@
 defmodule Pleroma.OTPVersion do
   @type check_status() :: :ok | :undefined | {:error, String.t()}
 
+  @spec check!() :: :ok | no_return()
+  def check! do
+    case check() do
+      :ok ->
+        :ok
+
+      {:error, version} ->
+        raise "
+            !!!OTP VERSION WARNING!!!
+            You are using gun adapter with OTP version #{version}, which doesn't support correct handling of unordered certificates chains.
+            "
+
+      :undefined ->
+        raise "
+            !!!OTP VERSION WARNING!!!
+            To support correct handling of unordered certificates chains - OTP version must be > 22.2.
+            "
+    end
+  end
+
   @spec check() :: check_status()
   def check do
     # OTP Version https://erlang.org/doc/system_principles/versions.html#otp-version