#! /usr/bin/env python3

import sys
import os
import argparse

from xenu_nntp.config import Config
from xenu_nntp.db     import Database
from xenu_nntp.user   import User

parser = argparse.ArgumentParser(description='Create new account')
parser.add_argument('--config-file', '-f', type=str,            help='Specify a configuration file location')
parser.add_argument('username',            type=str,            help='Username of account')

args = parser.parse_args()

config = Config.load(args.config_file)
db     = Database.from_config(config)

user = db.get(User, {'username': args.username})

if user is not None:
    print(f"{sys.argv[0]}: user '{args.username}' already exists", file=sys.stderr)
    exit(1)

user = User()
user.active   = True
user.username = args.username
user.password = '*'
user.fullname = input('Full name: ')
user.mail     = input('Email address: ')

try:
    db.add(user)
    db.commit()
except Exception as e:
    print(f"Failed to create user '{args.username}': {e}", file=sys.stderr)
    exit(1)

print(f"Created user '{args.username}' successfully.")