logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma
commit: 53c73cd1a3387dbdde283f563c5be4e45ffab05c
parent: 4b791afd607723ee02c82718c04299dc9986831a
Author: rinpatch <rinpatch@sdf.org>
Date:   Sat, 22 Jun 2019 09:19:10 +0000

Merge branch 'fix/ecto-tasks-release' into 'develop'

Ecto tasks: Resolve relative path using the application directory instead of cwd and load the application before doing anything

See merge request pleroma/pleroma!1322

Diffstat:

Mlib/mix/pleroma.ex4++++
Mlib/mix/tasks/pleroma/ecto/ecto.ex11++++++++++-
Mlib/mix/tasks/pleroma/ecto/migrate.ex2++
Mlib/mix/tasks/pleroma/ecto/rollback.ex2++
Mlib/pleroma/release_tasks.ex2++
5 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/lib/mix/pleroma.ex b/lib/mix/pleroma.ex @@ -9,6 +9,10 @@ defmodule Mix.Pleroma do {:ok, _} = Application.ensure_all_started(:pleroma) end + def load_pleroma do + Application.load(:pleroma) + end + def get_option(options, opt, prompt, defval \\ nil, defname \\ nil) do Keyword.get(options, opt) || shell_prompt(prompt, defval, defname) end diff --git a/lib/mix/tasks/pleroma/ecto/ecto.ex b/lib/mix/tasks/pleroma/ecto/ecto.ex @@ -9,6 +9,15 @@ defmodule Mix.Tasks.Pleroma.Ecto do def ensure_migrations_path(repo, opts) do path = opts[:migrations_path] || Path.join(source_repo_priv(repo), "migrations") + path = + case Path.type(path) do + :relative -> + Path.join(Application.app_dir(:pleroma), path) + + :absolute -> + path + end + if not File.dir?(path) do raise_missing_migrations(Path.relative_to_cwd(path), repo) end @@ -22,7 +31,7 @@ defmodule Mix.Tasks.Pleroma.Ecto do def source_repo_priv(repo) do config = repo.config() priv = config[:priv] || "priv/#{repo |> Module.split() |> List.last() |> Macro.underscore()}" - Path.join(File.cwd!(), priv) + Path.join(Application.app_dir(:pleroma), priv) end defp raise_missing_migrations(path, repo) do diff --git a/lib/mix/tasks/pleroma/ecto/migrate.ex b/lib/mix/tasks/pleroma/ecto/migrate.ex @@ -4,6 +4,7 @@ defmodule Mix.Tasks.Pleroma.Ecto.Migrate do use Mix.Task + import Mix.Pleroma require Logger @shortdoc "Wrapper on `ecto.migrate` task." @@ -37,6 +38,7 @@ defmodule Mix.Tasks.Pleroma.Ecto.Migrate do @impl true def run(args \\ []) do + load_pleroma() {opts, _} = OptionParser.parse!(args, strict: @switches, aliases: @aliases) opts = diff --git a/lib/mix/tasks/pleroma/ecto/rollback.ex b/lib/mix/tasks/pleroma/ecto/rollback.ex @@ -4,6 +4,7 @@ defmodule Mix.Tasks.Pleroma.Ecto.Rollback do use Mix.Task + import Mix.Pleroma require Logger @shortdoc "Wrapper on `ecto.rollback` task" @@ -36,6 +37,7 @@ defmodule Mix.Tasks.Pleroma.Ecto.Rollback do @impl true def run(args \\ []) do + load_pleroma() {opts, _} = OptionParser.parse!(args, strict: @switches, aliases: @aliases) opts = diff --git a/lib/pleroma/release_tasks.ex b/lib/pleroma/release_tasks.ex @@ -44,6 +44,8 @@ defmodule Pleroma.ReleaseTasks do end def create do + Application.load(:pleroma) + case @repo.__adapter__.storage_up(@repo.config) do :ok -> IO.puts("The database for #{inspect(@repo)} has been created")