From ec5dcb651ced6372f8eb3d3c16da10edb5b435f1 Mon Sep 17 00:00:00 2001 From: Roman Chvanikov Date: Tue, 21 Jul 2020 12:14:20 +0300 Subject: Fix instance setup --- lib/mix/tasks/pleroma/frontend.ex | 28 ++++++++++++++++------------ lib/mix/tasks/pleroma/instance.ex | 3 ++- test/tasks/instance_test.exs | 12 +++--------- 3 files changed, 21 insertions(+), 22 deletions(-) diff --git a/lib/mix/tasks/pleroma/frontend.ex b/lib/mix/tasks/pleroma/frontend.ex index 6b884e4d7..1750b5ffc 100644 --- a/lib/mix/tasks/pleroma/frontend.ex +++ b/lib/mix/tasks/pleroma/frontend.ex @@ -77,16 +77,19 @@ defmodule Mix.Tasks.Pleroma.Frontend do %{"ref" => ref, "url" => url} = get_frontend_metadata(frontend, ref0) dest = dest_path(frontend, ref) - - shell_info("Installing frontend #{frontend} (#{ref})") - tmp_dir = Path.join(dest, "tmp/src") + fe_label = "#{frontend} (#{ref})" + + shell_info("Downloading #{fe_label} to #{tmp_dir}") :ok = download_frontend(url, tmp_dir) + + shell_info("Building #{fe_label} (this will take some time)") :ok = build_frontend(frontend, tmp_dir) - :ok = install_frontend(frontend, tmp_dir, dest) - shell_info("Frontend #{frontend} (#{ref}) installed to #{dest}") + shell_info("Installing #{fe_label} to #{dest}") + :ok = install_frontend(frontend, tmp_dir, dest) + shell_info("Frontend #{fe_label} installed to #{dest}") {:ok, ref} end @@ -144,14 +147,13 @@ defmodule Mix.Tasks.Pleroma.Frontend do # fallback to develop version if compatible stable ref is not defined in # mix.exs for the given frontend defp get_frontend_metadata(frontend, @ref_stable) do - ref = - Map.get( - Pleroma.Application.frontends(), - frontend, + case Map.get(Pleroma.Application.frontends(), frontend) do + nil -> get_frontend_metadata(frontend, @ref_develop) - ) - %{"ref" => ref, "url" => archive_url(frontend, ref)} + ref -> + %{"ref" => ref, "url" => archive_url(frontend, ref)} + end end defp get_frontend_metadata(frontend, ref) do @@ -245,6 +247,8 @@ defmodule Mix.Tasks.Pleroma.Frontend do Tesla.Middleware.JSON ] - Tesla.client(middleware) + adapter = {Tesla.Adapter.Gun, [timeout: 120_000]} + + Tesla.client(middleware, adapter) end end diff --git a/lib/mix/tasks/pleroma/instance.ex b/lib/mix/tasks/pleroma/instance.ex index 72c5fcfe5..6319134b4 100644 --- a/lib/mix/tasks/pleroma/instance.ex +++ b/lib/mix/tasks/pleroma/instance.ex @@ -162,7 +162,8 @@ defmodule Mix.Tasks.Pleroma.Instance do ) |> Path.expand() - Config.put([:instance, :static_dir], static_dir) + Config.put([:instance, :static_dir], static_dir) |> IO.inspect(label: "put #{static_dir}") + Config.get!([:instance, :static_dir]) |> IO.inspect(label: :get_instance_static_dir) install_fe = case Mix.env() do diff --git a/test/tasks/instance_test.exs b/test/tasks/instance_test.exs index b049637a7..cad31c0da 100644 --- a/test/tasks/instance_test.exs +++ b/test/tasks/instance_test.exs @@ -66,16 +66,10 @@ defmodule Mix.Tasks.Pleroma.InstanceTest do "./test/../test/instance_static/", "--fe-primary", "pleroma", - "--fe-primary-ref", - "develop", "--fe-mastodon", "y", - "--fe-mastodon-ref", - "develop", "--fe-admin", "y", - "--fe-admin-ref", - "develop", "--fe-static", "y" ]) @@ -96,9 +90,9 @@ defmodule Mix.Tasks.Pleroma.InstanceTest do assert generated_config =~ "password: \"dbpass\"" assert generated_config =~ "configurable_from_database: true" assert generated_config =~ "http: [ip: {127, 0, 0, 1}, port: 4000]" - assert generated_config =~ ~s(primary: %{"name" => "pleroma", "ref" => "develop"}) - assert generated_config =~ ~s(mastodon: %{"name" => "mastodon", "ref" => "develop"}) - assert generated_config =~ ~s(admin: %{"name" => "admin", "ref" => "develop"}) + assert generated_config =~ ~s(primary: %{"name" => "pleroma", "ref" => "42"}) + assert generated_config =~ ~s(mastodon: %{"name" => "mastodon", "ref" => "42"}) + assert generated_config =~ ~s(admin: %{"name" => "admin", "ref" => "42"}) assert generated_config =~ "static: true" assert File.read!(tmp_path() <> "setup.psql") == generated_setup_psql() assert File.exists?(Path.expand("./test/instance_static/robots.txt")) -- cgit v1.2.3