summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Chvanikov <chvanikoff@pm.me>2020-07-22 18:52:36 +0300
committerRoman Chvanikov <chvanikoff@pm.me>2020-07-22 18:52:36 +0300
commitfdc4aeb5b01495754e75a1bcaeb8892ceb7722f7 (patch)
treeb9167f629f7a2321114ef0997e5a2a5774b02315
parent194012f7f59f48cf4ef2d6539ac4540d00b2d483 (diff)
Require yarn when installing FEs
-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