summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/administration/CLI_tasks/instance.md1
-rw-r--r--lib/mix/tasks/pleroma/instance.ex13
-rw-r--r--test/mix/tasks/pleroma/instance_test.exs11
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