File size: 1,031 Bytes
92d8b0d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from __future__ import annotations

import argparse
import asyncio

from app.configs.settings import get_settings
from app.services.container import AppContainer


async def main() -> None:
    parser = argparse.ArgumentParser(description="Create the first SumakaClone admin user.")
    parser.add_argument("--username", required=True)
    parser.add_argument("--password", required=True)
    parser.add_argument("--email", required=False)
    args = parser.parse_args()

    settings = get_settings()
    container = AppContainer(settings)
    await container.startup()
    try:
        if container.services is None:
            raise RuntimeError("Services not initialized.")
        admin = await container.services.auth.create_admin_user(
            username=args.username,
            password=args.password,
            email=args.email,
        )
        print(f"Created admin user {admin.username} with ID {admin.id}")
    finally:
        await container.shutdown()


if __name__ == "__main__":
    asyncio.run(main())