aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/mix/tasks/pleroma/instance.ex35
1 files changed, 30 insertions, 5 deletions
diff --git a/lib/mix/tasks/pleroma/instance.ex b/lib/mix/tasks/pleroma/instance.ex
index ba4ac8b6d..f57053a4c 100644
--- a/lib/mix/tasks/pleroma/instance.ex
+++ b/lib/mix/tasks/pleroma/instance.ex
@@ -164,8 +164,33 @@ defmodule Mix.Tasks.Pleroma.Instance do
install_fe =
case Mix.env() do
- :test -> fn _ -> "42" end
- _ -> &Mix.Tasks.Pleroma.Frontend.run(["install", &1, "--static-dir", static_dir])
+ :test ->
+ fn _, _ -> "42" end
+
+ _ ->
+ fn frontend, callback ->
+ case Pleroma.Utils.command_available?("yarn") do
+ false when frontend != "none" ->
+ message =
+ "To install #{frontend} frontend, `yarn` command is required. Please install it before continue. ([C]ontinue/[A]bort)"
+
+ case String.downcase(shell_prompt(message, "C")) do
+ abort when abort in ["a", "abort"] ->
+ "none"
+
+ _continue ->
+ callback.(frontend, callback)
+ end
+
+ _ ->
+ Mix.Tasks.Pleroma.Frontend.run([
+ "install",
+ frontend,
+ "--static-dir",
+ static_dir
+ ])
+ end
+ end
end
fe_primary =
@@ -176,7 +201,7 @@ defmodule Mix.Tasks.Pleroma.Instance do
"pleroma"
)
- fe_primary_ref = install_fe.(fe_primary)
+ fe_primary_ref = install_fe.(fe_primary, install_fe)
enable_static_fe? =
get_option(
@@ -197,7 +222,7 @@ defmodule Mix.Tasks.Pleroma.Instance do
fe_mastodon_ref =
case install_mastodon_fe? do
true ->
- install_fe.("mastodon")
+ install_fe.("mastodon", install_fe)
false ->
"none"
@@ -213,7 +238,7 @@ defmodule Mix.Tasks.Pleroma.Instance do
fe_admin_ref =
case install_admin_fe? do
- true -> install_fe.("admin")
+ true -> install_fe.("admin", install_fe)
false -> "none"
end