Ensure deleting entire group prints out settings that will be removed before actually removing them

This commit is contained in:
Mark Felder 2020-12-04 11:30:48 -06:00
parent 696d39c3dc
commit 3bf5c5b015
1 changed files with 22 additions and 16 deletions

View File

@ -142,7 +142,13 @@ defmodule Mix.Tasks.Pleroma.Config do
group = maybe_atomize(group)
with true <- group_exists?(group) do
shell_info("The following settings will be removed from ConfigDB:\n")
dump_group(group)
delete_group(group)
else
_ -> shell_error("No settings in ConfigDB for #{inspect(group)}. Aborting.")
end
end
def run(["delete", group, key]) do
@ -163,11 +169,18 @@ defmodule Mix.Tasks.Pleroma.Config do
group = maybe_atomize(group)
with true <- group_exists?(group) do
shell_info("The following settings will be removed from ConfigDB:\n")
dump_group(group)
if shell_prompt("Are you sure you want to continue?", "n") in ~w(Yn Y y) do
delete_group(group)
else
shell_error("No changes made.")
end
else
_ -> shell_error("No settings in ConfigDB for #{inspect(group)}. Aborting.")
end
end
@spec migrate_to_db(Path.t() | nil) :: any()
@ -329,18 +342,11 @@ defmodule Mix.Tasks.Pleroma.Config do
defp delete_group(group) do
check_configdb(fn ->
with true <- group_exists?(group) do
shell_info("The following settings will be removed from ConfigDB:\n")
dump_group(group)
group
|> Pleroma.ConfigDB.get_all_by_group()
|> Enum.each(fn config ->
Pleroma.ConfigDB.delete(%{group: config.group, key: config.key})
end)
else
_ -> shell_error("No settings in ConfigDB for #{inspect(group)}. Aborting.")
end
end)
end