Document mix tasks
[akkoma] / lib / mix / tasks / register_user.ex
index e2f36c34cf4a6f6356f2cccec50fb6bcb42fd9a6..1f5321093ed795174fda59af8faa39095a0ea0e8 100644 (file)
@@ -1,20 +1,29 @@
 defmodule Mix.Tasks.RegisterUser do
+  @moduledoc """
+  Manually register a local user
+
+  Usage: ``mix register_user <name> <nickname> <email> <bio> <password>``
+
+  Example: ``mix register_user 仮面の告白 lain lain@example.org "blushy-crushy fediverse idol + pleroma dev" pleaseDontHeckLain``
+  """
+
   use Mix.Task
-  import Mix.Ecto
   alias Pleroma.{Repo, User}
 
   @shortdoc "Register user"
   def run([name, nickname, email, bio, password]) do
-    ensure_started(Repo, [])
-    user = %User{
+    Mix.Task.run("app.start")
+
+    params = %{
       name: name,
       nickname: nickname,
       email: email,
-      password_hash: Comeonin.Pbkdf2.hashpwsalt(password),
+      password: password,
+      password_confirmation: password,
       bio: bio
     }
 
-    user = %{ user | ap_id: User.ap_id(user) }
+    user = User.register_changeset(%User{}, params)
 
     Repo.insert!(user)
   end