diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/mix/tasks/pleroma/instance.ex | 35 |
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 |