#!/usr/bin/env python3

"""
实例单实例架构下的 MySQL 安装与卸载
"""

import os
import sys
import logging
import argparse
import shutil
import dbma.mysqlops as mysqlops


def parser_cmd_args():
    """
    实现命令行参数的处理
    """
    name, *_ = os.path.basename(__file__).split('.')

    parser = argparse.ArgumentParser(name)
    parser.add_argument('--pkg', type=str,
                        default="mysql-shell-8.0.18-linux-glibc2.12-x86-64bit.tar.gz",
                        help="mysql shell package")
    parser.add_argument('--log', type=str, default='info',
                        choices=['debug', 'info', 'warning', 'error'])
    parser.add_argument('action', type=str, choices=['install'])

    args = parser.parse_args()
    return args


def main():
    """
    实现自动化安装 mysql-shell
    """
    args = parser_cmd_args()

    level = getattr(logging, args.log.upper())
    logger = logging.getLogger('dbm-agent')
    logger.setLevel(level)
    stream_handler = logging.StreamHandler()
    stream_handler.setLevel(logging.DEBUG)
    formatter = logging.Formatter(
        '%(asctime)s - %(name)s - %(threadName)s - %(levelname)s - %(message)s')
    stream_handler.setFormatter(formatter)
    logger.addHandler(stream_handler)

    mysqlsh = mysqlops.MySQLShellInstaller(pkg=args.pkg)
    mysqlsh.install()


if __name__ == "__main__":
    main()
