X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fmix%2Ftasks%2Fgenerate_config.ex;h=be085d187cb6c356f7bbe15047e289a6b4b7662f;hb=abead01ab6f5586e60d467d7efd0de560a97c5bd;hp=ae9ac3b75bd98d2ff8f6033de69e048212fd5cef;hpb=4afbef39f49948ddd3b1cd1bbda58ff7e3ac2785;p=akkoma diff --git a/lib/mix/tasks/generate_config.ex b/lib/mix/tasks/generate_config.ex index ae9ac3b75..be085d187 100644 --- a/lib/mix/tasks/generate_config.ex +++ b/lib/mix/tasks/generate_config.ex @@ -1,7 +1,15 @@ defmodule Mix.Tasks.GenerateConfig do use Mix.Task - @shortdoc "Generates a new config" + @moduledoc """ + Generate a new config + + ## Usage + ``mix generate_config`` + + This mix task is interactive, and will overwrite the config present at ``config/generated_config.exs``. + """ + 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") @@ -9,25 +17,13 @@ defmodule Mix.Tasks.GenerateConfig do 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) + {web_push_public_key, web_push_private_key} = :crypto.generate_key(:ecdh, :prime256v1) + result = EEx.eval_file( "lib/mix/tasks/sample_config.eex", @@ -35,9 +31,9 @@ defmodule Mix.Tasks.GenerateConfig do email: email, name: name, secret: secret, - mediaproxy: mediaproxy, - proxy_url: proxy_url, - dbpass: dbpass + dbpass: dbpass, + web_push_public_key: Base.url_encode64(web_push_public_key, padding: false), + web_push_private_key: Base.url_encode64(web_push_private_key, padding: false) ) IO.puts(