diff options
Diffstat (limited to 'lib/mix')
| -rw-r--r-- | lib/mix/pleroma.ex | 15 | ||||
| -rw-r--r-- | lib/mix/tasks/pleroma/benchmark.ex | 2 | ||||
| -rw-r--r-- | lib/mix/tasks/pleroma/config.ex | 2 | ||||
| -rw-r--r-- | lib/mix/tasks/pleroma/database.ex | 2 | ||||
| -rw-r--r-- | lib/mix/tasks/pleroma/ecto/ecto.ex | 2 | ||||
| -rw-r--r-- | lib/mix/tasks/pleroma/ecto/migrate.ex | 2 | ||||
| -rw-r--r-- | lib/mix/tasks/pleroma/ecto/rollback.ex | 2 | ||||
| -rw-r--r-- | lib/mix/tasks/pleroma/emoji.ex | 8 | ||||
| -rw-r--r-- | lib/mix/tasks/pleroma/instance.ex | 17 | ||||
| -rw-r--r-- | lib/mix/tasks/pleroma/refresh_counter_cache.ex | 46 | ||||
| -rw-r--r-- | lib/mix/tasks/pleroma/relay.ex | 2 | ||||
| -rw-r--r-- | lib/mix/tasks/pleroma/robotstxt.ex | 2 | ||||
| -rw-r--r-- | lib/mix/tasks/pleroma/uploads.ex | 2 | ||||
| -rw-r--r-- | lib/mix/tasks/pleroma/user.ex | 5 | 
14 files changed, 87 insertions, 22 deletions
diff --git a/lib/mix/pleroma.ex b/lib/mix/pleroma.ex index 73a076a53..3ad6edbfb 100644 --- a/lib/mix/pleroma.ex +++ b/lib/mix/pleroma.ex @@ -1,5 +1,5 @@  # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-only  defmodule Mix.Pleroma do @@ -12,6 +12,19 @@ defmodule Mix.Pleroma do      end      {:ok, _} = Application.ensure_all_started(:pleroma) + +    if Pleroma.Config.get(:env) not in [:test, :benchmark] do +      pleroma_rebooted?() +    end +  end + +  defp pleroma_rebooted? do +    if Restarter.Pleroma.rebooted?() do +      :ok +    else +      Process.sleep(10) +      pleroma_rebooted?() +    end    end    def load_pleroma do diff --git a/lib/mix/tasks/pleroma/benchmark.ex b/lib/mix/tasks/pleroma/benchmark.ex index 84dccf7f3..a4885b70c 100644 --- a/lib/mix/tasks/pleroma/benchmark.ex +++ b/lib/mix/tasks/pleroma/benchmark.ex @@ -1,5 +1,5 @@  # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-only  defmodule Mix.Tasks.Pleroma.Benchmark do diff --git a/lib/mix/tasks/pleroma/config.ex b/lib/mix/tasks/pleroma/config.ex index 3e76d2c97..5c9ef6904 100644 --- a/lib/mix/tasks/pleroma/config.ex +++ b/lib/mix/tasks/pleroma/config.ex @@ -1,5 +1,5 @@  # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-only  defmodule Mix.Tasks.Pleroma.Config do diff --git a/lib/mix/tasks/pleroma/database.ex b/lib/mix/tasks/pleroma/database.ex index e2b5251bc..778de162f 100644 --- a/lib/mix/tasks/pleroma/database.ex +++ b/lib/mix/tasks/pleroma/database.ex @@ -1,5 +1,5 @@  # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-only  defmodule Mix.Tasks.Pleroma.Database do diff --git a/lib/mix/tasks/pleroma/ecto/ecto.ex b/lib/mix/tasks/pleroma/ecto/ecto.ex index 36808b93f..3363cd45f 100644 --- a/lib/mix/tasks/pleroma/ecto/ecto.ex +++ b/lib/mix/tasks/pleroma/ecto/ecto.ex @@ -1,5 +1,5 @@  # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-onl  defmodule Mix.Tasks.Pleroma.Ecto do diff --git a/lib/mix/tasks/pleroma/ecto/migrate.ex b/lib/mix/tasks/pleroma/ecto/migrate.ex index d87b6957d..bc8ed29fb 100644 --- a/lib/mix/tasks/pleroma/ecto/migrate.ex +++ b/lib/mix/tasks/pleroma/ecto/migrate.ex @@ -1,5 +1,5 @@  # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-onl  defmodule Mix.Tasks.Pleroma.Ecto.Migrate do diff --git a/lib/mix/tasks/pleroma/ecto/rollback.ex b/lib/mix/tasks/pleroma/ecto/rollback.ex index a1af73fa1..f43bd0b98 100644 --- a/lib/mix/tasks/pleroma/ecto/rollback.ex +++ b/lib/mix/tasks/pleroma/ecto/rollback.ex @@ -1,5 +1,5 @@  # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-onl  defmodule Mix.Tasks.Pleroma.Ecto.Rollback do diff --git a/lib/mix/tasks/pleroma/emoji.ex b/lib/mix/tasks/pleroma/emoji.ex index 24d999707..2b03a3009 100644 --- a/lib/mix/tasks/pleroma/emoji.ex +++ b/lib/mix/tasks/pleroma/emoji.ex @@ -1,5 +1,5 @@  # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-only  defmodule Mix.Tasks.Pleroma.Emoji do @@ -186,11 +186,7 @@ defmodule Mix.Tasks.Pleroma.Emoji do      tmp_pack_dir = Path.join(System.tmp_dir!(), "emoji-pack-#{name}") -    {:ok, _} = -      :zip.unzip( -        binary_archive, -        cwd: tmp_pack_dir -      ) +    {:ok, _} = :zip.unzip(binary_archive, cwd: String.to_charlist(tmp_pack_dir))      emoji_map = Pleroma.Emoji.Loader.make_shortcode_to_file_map(tmp_pack_dir, exts) diff --git a/lib/mix/tasks/pleroma/instance.ex b/lib/mix/tasks/pleroma/instance.ex index 9af6cda30..bc842a59f 100644 --- a/lib/mix/tasks/pleroma/instance.ex +++ b/lib/mix/tasks/pleroma/instance.ex @@ -1,11 +1,13 @@  # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-only  defmodule Mix.Tasks.Pleroma.Instance do    use Mix.Task    import Mix.Pleroma +  alias Pleroma.Config +    @shortdoc "Manages Pleroma instance"    @moduledoc File.read!("docs/administration/CLI_tasks/instance.md") @@ -63,7 +65,8 @@ defmodule Mix.Tasks.Pleroma.Instance do          get_option(            options,            :instance_name, -          "What is the name of your instance? (e.g. Pleroma/Soykaf)" +          "What is the name of your instance? (e.g. The Corndog Emporium)", +          domain          )        email = get_option(options, :admin_email, "What is your admin email address?") @@ -153,6 +156,8 @@ defmodule Mix.Tasks.Pleroma.Instance do            Pleroma.Config.get([:instance, :static_dir])          ) +      Config.put([:instance, :static_dir], static_dir) +        secret = :crypto.strong_rand_bytes(64) |> Base.encode64() |> binary_part(0, 64)        jwt_secret = :crypto.strong_rand_bytes(64) |> Base.encode64() |> binary_part(0, 64)        signing_salt = :crypto.strong_rand_bytes(8) |> Base.encode64() |> binary_part(0, 8) @@ -202,8 +207,14 @@ defmodule Mix.Tasks.Pleroma.Instance do        write_robots_txt(indexable, template_dir)        shell_info( -        "\n All files successfully written! Refer to the installation instructions for your platform for next steps" +        "\n All files successfully written! Refer to the installation instructions for your platform for next steps."        ) + +      if db_configurable? do +        shell_info( +          " Please transfer your config to the database after running database migrations. Refer to \"Transfering the config to/from the database\" section of the docs for more information." +        ) +      end      else        shell_error(          "The task would have overwritten the following files:\n" <> diff --git a/lib/mix/tasks/pleroma/refresh_counter_cache.ex b/lib/mix/tasks/pleroma/refresh_counter_cache.ex new file mode 100644 index 000000000..15b4dbfa6 --- /dev/null +++ b/lib/mix/tasks/pleroma/refresh_counter_cache.ex @@ -0,0 +1,46 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Mix.Tasks.Pleroma.RefreshCounterCache do +  @shortdoc "Refreshes counter cache" + +  use Mix.Task + +  alias Pleroma.Activity +  alias Pleroma.CounterCache +  alias Pleroma.Repo + +  require Logger +  import Ecto.Query + +  def run([]) do +    Mix.Pleroma.start_pleroma() + +    ["public", "unlisted", "private", "direct"] +    |> Enum.each(fn visibility -> +      count = status_visibility_count_query(visibility) +      name = "status_visibility_#{visibility}" +      CounterCache.set(name, count) +      Mix.Pleroma.shell_info("Set #{name} to #{count}") +    end) + +    Mix.Pleroma.shell_info("Done") +  end + +  defp status_visibility_count_query(visibility) do +    Activity +    |> where( +      [a], +      fragment( +        "activity_visibility(?, ?, ?) = ?", +        a.actor, +        a.recipients, +        a.data, +        ^visibility +      ) +    ) +    |> where([a], fragment("(? ->> 'type'::text) = 'Create'", a.data)) +    |> Repo.aggregate(:count, :id, timeout: :timer.minutes(30)) +  end +end diff --git a/lib/mix/tasks/pleroma/relay.ex b/lib/mix/tasks/pleroma/relay.ex index 7ef5f9678..c6ca888d4 100644 --- a/lib/mix/tasks/pleroma/relay.ex +++ b/lib/mix/tasks/pleroma/relay.ex @@ -1,5 +1,5 @@  # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-only  defmodule Mix.Tasks.Pleroma.Relay do diff --git a/lib/mix/tasks/pleroma/robotstxt.ex b/lib/mix/tasks/pleroma/robotstxt.ex index e99dd8502..24f08180e 100644 --- a/lib/mix/tasks/pleroma/robotstxt.ex +++ b/lib/mix/tasks/pleroma/robotstxt.ex @@ -1,5 +1,5 @@  # Pleroma: A lightweight social networking server -# Copyright © 2019 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-only  defmodule Mix.Tasks.Pleroma.RobotsTxt do diff --git a/lib/mix/tasks/pleroma/uploads.ex b/lib/mix/tasks/pleroma/uploads.ex index 3e6fc7ee0..c47b7531e 100644 --- a/lib/mix/tasks/pleroma/uploads.ex +++ b/lib/mix/tasks/pleroma/uploads.ex @@ -1,5 +1,5 @@  # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-only  defmodule Mix.Tasks.Pleroma.Uploads do diff --git a/lib/mix/tasks/pleroma/user.ex b/lib/mix/tasks/pleroma/user.ex index 85c9e4954..40dd9bdc0 100644 --- a/lib/mix/tasks/pleroma/user.ex +++ b/lib/mix/tasks/pleroma/user.ex @@ -1,5 +1,5 @@  # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/> +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>  # SPDX-License-Identifier: AGPL-3.0-only  defmodule Mix.Tasks.Pleroma.User do @@ -100,8 +100,7 @@ defmodule Mix.Tasks.Pleroma.User do        User.perform(:delete, user)        shell_info("User #{nickname} deleted.")      else -      _ -> -        shell_error("No local user #{nickname}") +      _ -> shell_error("No local user #{nickname}")      end    end  | 
