projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Do not crash on invalid atom in configDB
[akkoma]
/
lib
/
pleroma
/
frontend.ex
diff --git
a/lib/pleroma/frontend.ex
b/lib/pleroma/frontend.ex
index 3413d2fbad1dd2c8ab156344e025c6bce789feb3..dc9d55646c9a949e206a57a78ccfda39f6ca0918 100644
(file)
--- a/
lib/pleroma/frontend.ex
+++ b/
lib/pleroma/frontend.ex
@@
-1,5
+1,5
@@
# Pleroma: A lightweight social networking server
# Pleroma: A lightweight social networking server
-# Copyright © 2017-202
0
Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-202
1
Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Frontend do
# SPDX-License-Identifier: AGPL-3.0-only
defmodule Pleroma.Frontend do
@@
-8,16
+8,16
@@
defmodule Pleroma.Frontend do
require Logger
def install(name, opts \\ []) do
require Logger
def install(name, opts \\ []) do
-
cmd_
frontend_info = %{
+ frontend_info = %{
"ref" => opts[:ref],
"build_url" => opts[:build_url],
"build_dir" => opts[:build_dir]
}
"ref" => opts[:ref],
"build_url" => opts[:build_url],
"build_dir" => opts[:build_dir]
}
- config_frontend_info = Config.get([:frontends, :available, name], %{})
-
frontend_info =
frontend_info =
- Map.merge(config_frontend_info, cmd_frontend_info, fn _key, config, cmd ->
+ [:frontends, :available, name]
+ |> Config.get(%{})
+ |> Map.merge(frontend_info, fn _key, config, cmd ->
# This only overrides things that are actually set
cmd || config
end)
# This only overrides things that are actually set
cmd || config
end)
@@
-32,19
+32,22
@@
defmodule Pleroma.Frontend do
label = "#{name} (#{ref})"
tmp_dir = Path.join(dir(), "tmp")
label = "#{name} (#{ref})"
tmp_dir = Path.join(dir(), "tmp")
+ IO.puts("Downloading #{label}...")
with {_, :ok} <-
{:download_or_unzip, download_or_unzip(frontend_info, tmp_dir, opts[:file])},
with {_, :ok} <-
{:download_or_unzip, download_or_unzip(frontend_info, tmp_dir, opts[:file])},
-
Logger.info
("Installing #{label} to #{dest}"),
+
IO.puts
("Installing #{label} to #{dest}"),
:ok <- install_frontend(frontend_info, tmp_dir, dest) do
File.rm_rf!(tmp_dir)
:ok <- install_frontend(frontend_info, tmp_dir, dest) do
File.rm_rf!(tmp_dir)
-
Logger.info
("Frontend #{label} installed to #{dest}")
+
IO.puts
("Frontend #{label} installed to #{dest}")
else
{:download_or_unzip, _} ->
else
{:download_or_unzip, _} ->
- Logger.info("Could not download or unzip the frontend")
+ IO.puts("Could not download or unzip the frontend")
+ {:error, "Could not download or unzip the frontend"}
_e ->
_e ->
- Logger.info("Could not install the frontend")
+ IO.puts("Could not install the frontend")
+ {:error, "Could not install the frontend"}
end
end
end
end
@@
-90,7
+93,7
@@
defmodule Pleroma.Frontend do
url = String.replace(frontend_info["build_url"], "${ref}", frontend_info["ref"])
with {:ok, %{status: 200, body: zip_body}} <-
url = String.replace(frontend_info["build_url"], "${ref}", frontend_info["ref"])
with {:ok, %{status: 200, body: zip_body}} <-
- Pleroma.HTTP.get(url, [],
pool: :media, recv
_timeout: 120_000) do
+ Pleroma.HTTP.get(url, [],
receive
_timeout: 120_000) do
unzip(zip_body, dest)
else
{:error, e} -> {:error, e}
unzip(zip_body, dest)
else
{:error, e} -> {:error, e}