#! /usr/bin/env python3

import argparse
import os.path

from plenum.common.keygen_utils import initNodeKeysForBothStacks
from plenum.common.constants import CLIENT_STACK_SUFFIX
from plenum.common.util import randomString

from indy_common.config_util import getConfig

config = getConfig()
keepDir = os.path.join(config.baseDir, config.NETWORK_NAME)


if __name__ == "__main__":
    if not os.path.exists(keepDir):
        os.makedirs(keepDir, exist_ok=True)

    parser = argparse.ArgumentParser(
        description="Generate keys for a node's stacks "
                    "by taking the node's name and 2 "
                    "seed values")

    parser.add_argument('--name', required=True, help='node name')
    parser.add_argument('--seed', required=False, type=str,
                        help='seed for keypair')
    parser.add_argument('--force', help='overrides keys', action='store_true')
    args = parser.parse_args()

    print("Node-stack name is", args.name)
    print("Client-stack name is", args.name + CLIENT_STACK_SUFFIX)
    try:
        initNodeKeysForBothStacks(args.name, keepDir, args.seed, override=args.force)
    except Exception as ex:
        print(ex)
        exit()
