diff options
Diffstat (limited to 'lib/mix/tasks')
| -rw-r--r-- | lib/mix/tasks/fix_ap_users.ex | 12 | ||||
| -rw-r--r-- | lib/mix/tasks/generate_config.ex | 64 | ||||
| -rw-r--r-- | lib/mix/tasks/generate_password_reset.ex | 15 | ||||
| -rw-r--r-- | lib/mix/tasks/make_moderator.ex | 19 | 
4 files changed, 75 insertions, 35 deletions
| diff --git a/lib/mix/tasks/fix_ap_users.ex b/lib/mix/tasks/fix_ap_users.ex index ff09074c3..2523cdbcb 100644 --- a/lib/mix/tasks/fix_ap_users.ex +++ b/lib/mix/tasks/fix_ap_users.ex @@ -8,12 +8,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..ae9ac3b75 100644 --- a/lib/mix/tasks/generate_config.ex +++ b/lib/mix/tasks/generate_config.ex @@ -5,27 +5,51 @@ 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() + +    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" +    ) +      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..e39134007 100644 --- a/lib/mix/tasks/generate_password_reset.ex +++ b/lib/mix/tasks/generate_password_reset.ex @@ -9,11 +9,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 | 
