defmodule Pleroma.Application do
import Cachex.Spec
use Application
+ require Logger
@name Mix.Project.config()[:name]
@version Mix.Project.config()[:version]
# See http://elixir-lang.org/docs/stable/elixir/Application.html
# for more information on OTP Applications
def start(_type, _args) do
+ Pleroma.HTML.compile_scrubbers()
Pleroma.Config.DeprecationWarnings.warn()
+ Pleroma.Repo.check_migrations_applied!()
setup_instrumenters()
load_custom_modules()
end
def load_custom_modules do
- dir = Pleroma.Config.get([:instance, :custom_modules_dir])
+ dir = Pleroma.Config.get([:modules, :runtime_dir])
if dir && File.exists?(dir) do
dir
- |> File.ls!()
- |> Enum.map(&Path.join(dir, &1))
- |> Kernel.ParallelCompiler.compile()
+ |> Pleroma.Utils.compile_dir()
|> case do
{:error, _errors, _warnings} ->
raise "Invalid custom modules"
{:ok, modules, _warnings} ->
- Enum.each(modules, fn mod ->
- name = mod |> Atom.to_string() |> String.trim_leading("Elixir.")
- IO.puts("Custom module loaded: #{name}")
- end)
+ if @env != :test do
+ Enum.each(modules, fn mod ->
+ Logger.info("Custom module loaded: #{inspect(mod)}")
+ end)
+ end
:ok
end
defp oauth_cleanup_child(_), do: []
- defp chat_child(:test, _), do: []
-
defp chat_child(_env, true) do
[Pleroma.Web.ChatChannel.ChatChannelState]
end