Files
2026-06-13 20:20:56 +00:00

43 lines
1.3 KiB
Python

"""Create a user with API token. Usage:
python -m scripts.create_user testuser --display-name "Test User"
python -m scripts.create_user guest --token my-custom-token-32chars-min
"""
from __future__ import annotations
import argparse
import sys
from app.db.base import SessionLocal, init_db
from app.auth.service import create_user
def main() -> int:
parser = argparse.ArgumentParser(description="Create Home Assistant user")
parser.add_argument("username", help="Unique username (lowercase)")
parser.add_argument("--display-name", default="", help="Display name")
parser.add_argument("--token", default="", help="Custom API token (auto-generated if empty)")
args = parser.parse_args()
init_db()
db = SessionLocal()
try:
user, plain_token = create_user(
db,
username=args.username,
display_name=args.display_name or args.username,
api_token=args.token or None,
)
except ValueError as exc:
print(f"Error: {exc}", file=sys.stderr)
return 1
finally:
db.close()
print(f"Created user id={user.id} username={user.username}")
print(f"API token (save it, shown once):\n{plain_token}")
return 0
if __name__ == "__main__":
raise SystemExit(main())