diff options
| -rw-r--r-- | docs/administration/CLI_tasks/instance.md | 1 | ||||
| -rw-r--r-- | lib/mix/tasks/pleroma/instance.ex | 13 | ||||
| -rw-r--r-- | test/mix/tasks/pleroma/instance_test.exs | 11 | 
3 files changed, 22 insertions, 3 deletions
diff --git a/docs/administration/CLI_tasks/instance.md b/docs/administration/CLI_tasks/instance.md index d922b44df..982b22bf3 100644 --- a/docs/administration/CLI_tasks/instance.md +++ b/docs/administration/CLI_tasks/instance.md @@ -41,3 +41,4 @@ If any of the options are left unspecified, you will be prompted interactively.  - `--anonymize-uploads <Y|N>` - randomize uploaded filenames  - `--dedupe-uploads <Y|N>` - store files based on their hash to reduce data storage requirements if duplicates are uploaded with different filenames  - `--skip-release-env` - skip generation the release environment file +- `--release-env-file` - release environment file path diff --git a/lib/mix/tasks/pleroma/instance.ex b/lib/mix/tasks/pleroma/instance.ex index caa7dfbd3..1915aacd9 100644 --- a/lib/mix/tasks/pleroma/instance.ex +++ b/lib/mix/tasks/pleroma/instance.ex @@ -37,7 +37,8 @@ defmodule Mix.Tasks.Pleroma.Instance do            strip_uploads: :string,            anonymize_uploads: :string,            dedupe_uploads: :string, -          skip_release_env: :boolean +          skip_release_env: :boolean, +          release_env_file: :string          ],          aliases: [            o: :output, @@ -249,7 +250,15 @@ defmodule Mix.Tasks.Pleroma.Instance do          """)        else          shell_info("Generation the environment file:") -        Mix.Tasks.Pleroma.ReleaseEnv.run(["gen"]) + +        release_env_args = +          with path when not is_nil(path) <- Keyword.get(options, :release_env_file) do +            ["gen", "--path", path] +          else +            _ -> ["gen"] +          end + +        Mix.Tasks.Pleroma.ReleaseEnv.run(release_env_args)        end        shell_info( diff --git a/test/mix/tasks/pleroma/instance_test.exs b/test/mix/tasks/pleroma/instance_test.exs index 8a02710ee..fe69a2def 100644 --- a/test/mix/tasks/pleroma/instance_test.exs +++ b/test/mix/tasks/pleroma/instance_test.exs @@ -5,6 +5,8 @@  defmodule Mix.Tasks.Pleroma.InstanceTest do    use ExUnit.Case +  @release_env_file "./test/pleroma.test.env" +    setup do      File.mkdir_p!(tmp_path()) @@ -16,6 +18,8 @@ defmodule Mix.Tasks.Pleroma.InstanceTest do          File.rm_rf(Path.join(static_dir, "robots.txt"))        end +      if File.exists?(@release_env_file), do: File.rm_rf(@release_env_file) +        Pleroma.Config.put([:instance, :static_dir], static_dir)      end) @@ -69,7 +73,9 @@ defmodule Mix.Tasks.Pleroma.InstanceTest do          "--dedupe-uploads",          "n",          "--anonymize-uploads", -        "n" +        "n", +        "--release-env-file", +        @release_env_file        ])      end @@ -91,6 +97,9 @@ defmodule Mix.Tasks.Pleroma.InstanceTest do      assert generated_config =~ "filters: [Pleroma.Upload.Filter.ExifTool]"      assert File.read!(tmp_path() <> "setup.psql") == generated_setup_psql()      assert File.exists?(Path.expand("./test/instance/static/robots.txt")) +    assert File.exists?(@release_env_file) + +    assert File.read!(@release_env_file) =~ ~r/^RELEASE_COOKIE=.*/    end    defp generated_setup_psql do  | 
