#!/usr/bin/env python3

import argparse
import threading
import sys

from masterssh.masterssh import MasterSSH

arg_parser = argparse.ArgumentParser(description='MasterSSH')

arg_parser.add_argument('--cred-url', dest='cred_url', default=None, help='URL that points to credentials')
arg_parser.add_argument('--cred-file', dest='cred_file', default=None, help='Path to your credentials file')
arg_parser.add_argument('--servers', dest='servers', default=None, help='A comma separated list of server hostnames')
arg_parser.add_argument('--manual', dest='manual', action='store_true', help='Use this when you wish to connect manually from the program')
arg_parser.add_argument('--verbose', dest='verbose', action='store_true', help='Sets logging to debug level')
arg_parser.add_argument('--port', dest='port', default=22, help='Sets the custom port for all hosts')
arg_parser.add_argument('--exit-timeout', dest='exit_timeout', default=5, help='Sets the timeout for exit command')
arg_parser.add_argument('--max-retries', dest='max_retries', default=5, help='Sets the limit for connection retries')
arg_parser.add_argument('--retry-delay', dest='retry_delay', default=5, help='Sets the sleep timeout in seconds')

args = arg_parser.parse_args()

threading.current_thread().name = 'MasterSSH'

master_ssh = MasterSSH(args)
master_ssh.create_connections()
master_ssh.listen()

sys.exit(0)
