summaryrefslogtreecommitdiff
path: root/lib/mix
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mix')
-rw-r--r--lib/mix/tasks/fix_ap_users.ex13
-rw-r--r--lib/mix/tasks/generate_config.ex48
-rw-r--r--lib/mix/tasks/generate_password_reset.ex18
-rw-r--r--lib/mix/tasks/make_moderator.ex19
-rw-r--r--lib/mix/tasks/register_user.ex3
-rw-r--r--lib/mix/tasks/rm_user.ex13
-rw-r--r--lib/mix/tasks/sample_config.eex6
7 files changed, 77 insertions, 43 deletions
diff --git a/lib/mix/tasks/fix_ap_users.ex b/lib/mix/tasks/fix_ap_users.ex
index ff09074c3..7e970850e 100644
--- a/lib/mix/tasks/fix_ap_users.ex
+++ b/lib/mix/tasks/fix_ap_users.ex
@@ -1,6 +1,5 @@
defmodule Mix.Tasks.FixApUsers do
use Mix.Task
- import Mix.Ecto
import Ecto.Query
alias Pleroma.{Repo, User}
@@ -8,12 +7,16 @@ defmodule Mix.Tasks.FixApUsers do
def run([]) do
Mix.Task.run("app.start")
- q = from u in User,
- where: fragment("? @> ?", u.info, ^%{"ap_enabled" => true}),
- where: u.local == false
+ q =
+ from(
+ u in User,
+ where: fragment("? @> ?", u.info, ^%{"ap_enabled" => true}),
+ where: u.local == false
+ )
+
users = Repo.all(q)
- Enum.each(users, fn(user) ->
+ Enum.each(users, fn user ->
try do
IO.puts("Fetching #{user.nickname}")
Pleroma.Web.ActivityPub.Transmogrifier.upgrade_user_from_ap_id(user.ap_id, false)
diff --git a/lib/mix/tasks/generate_config.ex b/lib/mix/tasks/generate_config.ex
index 2d962124f..70a110561 100644
--- a/lib/mix/tasks/generate_config.ex
+++ b/lib/mix/tasks/generate_config.ex
@@ -5,27 +5,35 @@ defmodule Mix.Tasks.GenerateConfig do
def run(_) do
IO.puts("Answer a few questions to generate a new config\n")
IO.puts("--- THIS WILL OVERWRITE YOUR config/generated_config.exs! ---\n")
- domain = IO.gets("What is your domain name? (e.g. pleroma.soykaf.com): ") |> String.trim
- name = IO.gets("What is the name of your instance? (e.g. Pleroma/Soykaf): ") |> String.trim
- email = IO.gets("What's your admin email address: ") |> String.trim
- mediaproxy = IO.gets("Do you want to activate the mediaproxy? (y/N): ")
- |> String.trim()
- |> String.downcase()
- |> String.starts_with?("y")
- proxy_url = if mediaproxy do
- IO.gets("What is the mediaproxy's URL? (e.g. https://cache.example.com): ") |> String.trim
- else
- "https://cache.example.com"
- end
- secret = :crypto.strong_rand_bytes(64) |> Base.encode64 |> binary_part(0, 64)
- dbpass = :crypto.strong_rand_bytes(64) |> Base.encode64 |> binary_part(0, 64)
-
- resultSql = EEx.eval_file("lib/mix/tasks/sample_psql.eex", [dbpass: dbpass])
- result = EEx.eval_file("lib/mix/tasks/sample_config.eex", [domain: domain, email: email, name: name, secret: secret, mediaproxy: mediaproxy, proxy_url: proxy_url, dbpass: dbpass])
-
- IO.puts("\nWriting config to config/generated_config.exs.\n\nCheck it and configure your database, then copy it to either config/dev.secret.exs or config/prod.secret.exs")
+ domain = IO.gets("What is your domain name? (e.g. pleroma.soykaf.com): ") |> String.trim()
+ name = IO.gets("What is the name of your instance? (e.g. Pleroma/Soykaf): ") |> String.trim()
+ email = IO.gets("What's your admin email address: ") |> String.trim()
+
+ secret = :crypto.strong_rand_bytes(64) |> Base.encode64() |> binary_part(0, 64)
+ dbpass = :crypto.strong_rand_bytes(64) |> Base.encode64() |> binary_part(0, 64)
+
+ resultSql = EEx.eval_file("lib/mix/tasks/sample_psql.eex", dbpass: dbpass)
+
+ result =
+ EEx.eval_file(
+ "lib/mix/tasks/sample_config.eex",
+ domain: domain,
+ email: email,
+ name: name,
+ secret: secret,
+ dbpass: dbpass
+ )
+
+ IO.puts(
+ "\nWriting config to config/generated_config.exs.\n\nCheck it and configure your database, then copy it to either config/dev.secret.exs or config/prod.secret.exs"
+ )
+
File.write("config/generated_config.exs", result)
- IO.puts("\nWriting setup_db.psql, please run it as postgre superuser, i.e.: sudo su postgres -c 'psql -f config/setup_db.psql'")
+
+ IO.puts(
+ "\nWriting setup_db.psql, please run it as postgre superuser, i.e.: sudo su postgres -c 'psql -f config/setup_db.psql'"
+ )
+
File.write("config/setup_db.psql", resultSql)
end
end
diff --git a/lib/mix/tasks/generate_password_reset.ex b/lib/mix/tasks/generate_password_reset.ex
index b968b1f98..6bf640150 100644
--- a/lib/mix/tasks/generate_password_reset.ex
+++ b/lib/mix/tasks/generate_password_reset.ex
@@ -1,7 +1,6 @@
defmodule Mix.Tasks.GeneratePasswordReset do
use Mix.Task
- import Mix.Ecto
- alias Pleroma.{Repo, User}
+ alias Pleroma.User
@shortdoc "Generate password reset link for user"
def run([nickname]) do
@@ -9,11 +8,20 @@ defmodule Mix.Tasks.GeneratePasswordReset do
with %User{local: true} = user <- User.get_by_nickname(nickname),
{:ok, token} <- Pleroma.PasswordResetToken.create_token(user) do
- IO.puts "Generated password reset token for #{user.nickname}"
- IO.puts "Url: #{Pleroma.Web.Router.Helpers.util_url(Pleroma.Web.Endpoint, :show_password_reset, token.token)}"
+ IO.puts("Generated password reset token for #{user.nickname}")
+
+ IO.puts(
+ "Url: #{
+ Pleroma.Web.Router.Helpers.util_url(
+ Pleroma.Web.Endpoint,
+ :show_password_reset,
+ token.token
+ )
+ }"
+ )
else
_ ->
- IO.puts "No local user #{nickname}"
+ IO.puts("No local user #{nickname}")
end
end
end
diff --git a/lib/mix/tasks/make_moderator.ex b/lib/mix/tasks/make_moderator.ex
index a76b54f40..20f04c54c 100644
--- a/lib/mix/tasks/make_moderator.ex
+++ b/lib/mix/tasks/make_moderator.ex
@@ -7,21 +7,24 @@ defmodule Mix.Tasks.SetModerator do
def run([nickname | rest]) do
ensure_started(Repo, [])
- moderator = case rest do
- [moderator] -> moderator == "true"
- _ -> true
- end
+ moderator =
+ case rest do
+ [moderator] -> moderator == "true"
+ _ -> true
+ end
with %User{local: true} = user <- User.get_by_nickname(nickname) do
- info = user.info
- |> Map.put("is_moderator", !!moderator)
+ info =
+ user.info
+ |> Map.put("is_moderator", !!moderator)
+
cng = User.info_changeset(user, %{info: info})
user = Repo.update!(cng)
- IO.puts "Moderator status of #{nickname}: #{user.info["is_moderator"]}"
+ IO.puts("Moderator status of #{nickname}: #{user.info["is_moderator"]}")
else
_ ->
- IO.puts "No local user #{nickname}"
+ IO.puts("No local user #{nickname}")
end
end
end
diff --git a/lib/mix/tasks/register_user.ex b/lib/mix/tasks/register_user.ex
index 48236439b..e74721c49 100644
--- a/lib/mix/tasks/register_user.ex
+++ b/lib/mix/tasks/register_user.ex
@@ -1,11 +1,10 @@
defmodule Mix.Tasks.RegisterUser do
use Mix.Task
- import Mix.Ecto
alias Pleroma.{Repo, User}
@shortdoc "Register user"
def run([name, nickname, email, bio, password]) do
- ensure_started(Repo, [])
+ Mix.Task.run("app.start")
params = %{
name: name,
diff --git a/lib/mix/tasks/rm_user.ex b/lib/mix/tasks/rm_user.ex
new file mode 100644
index 000000000..27521b745
--- /dev/null
+++ b/lib/mix/tasks/rm_user.ex
@@ -0,0 +1,13 @@
+defmodule Mix.Tasks.RmUser do
+ use Mix.Task
+ alias Pleroma.User
+
+ @shortdoc "Permanently delete a user"
+ def run([nickname]) do
+ Mix.Task.run("app.start")
+
+ with %User{local: true} = user <- User.get_by_nickname(nickname) do
+ User.delete(user)
+ end
+ end
+end
diff --git a/lib/mix/tasks/sample_config.eex b/lib/mix/tasks/sample_config.eex
index 9330fae2d..e37c864c0 100644
--- a/lib/mix/tasks/sample_config.eex
+++ b/lib/mix/tasks/sample_config.eex
@@ -11,9 +11,9 @@ config :pleroma, :instance,
registrations_open: true
config :pleroma, :media_proxy,
- enabled: <%= mediaproxy %>,
- redirect_on_failure: true,
- base_url: "<%= proxy_url %>"
+ enabled: false,
+ redirect_on_failure: true
+ #base_url: "https://cache.pleroma.social"
# Configure your database
config :pleroma, Pleroma.Repo,