#!python
# -*- coding:utf-8 -*-

import paspas.generator

from argparse import ArgumentParser
import os
import yaml
import sys

parser = ArgumentParser()
parser.add_argument("-s", "--site", dest="site", help="site name", required=True)
parser.add_argument("-u", "--user", dest="user", help="user name", required=True)
parser.add_argument("-m", "--master", dest="master", help="master password", required=False)
command_args = parser.parse_args()

config_path = os.environ['HOME'] + '/.paspas'
config = {}
if os.path.exists(config_path):
    f = open(config_path)
    config = yaml.load(f)
    f.close()

if 'master_password' in config and command_args.master is None:
    master_password = config['master_password']
else:
    master_password = command_args.master

if master_password is None:
    parser.print_help()
    sys.exit()

max_length = 0
if command_args.site in config and 'max_length' in config[command_args.site]:
    max_length = config[command_args.site]['max_length']

password = paspas.generator.generate(command_args.site, command_args.user, master_password, max_length).strip()
print(password)
