#!/usr/bin/env python3
"""
Standalone утилита для дешифровки паролей Zabbix
"""

import argparse
import sys
import os

def main():
    parser = argparse.ArgumentParser(
        description='Дешифровка паролей Zabbix с использованием модуля aldpro_core_env',
        formatter_class=argparse.RawDescriptionHelpFormatter
    )

    parser.add_argument(
        '-p', '--password',
        dest='encrypted_password',
        required=True,
        help='Зашифрованный пароль в base64'
    )

    parser.add_argument(
        '-k', '--private-key',
        dest='private_key_file',
        required=True,
        help='Путь к файлу приватного ключа'
    )

    parser.add_argument(
        '--verbose', '-v',
        action='store_true',
        help='Показать отладочную информацию'
    )

    args = parser.parse_args()

    # Проверяем существование файла приватного ключа
    if not os.path.isfile(args.private_key_file):
        print(f"Ошибка: Файл приватного ключа не найден: {args.private_key_file}", file=sys.stderr)
        sys.exit(1)

    try:
        # Импортируем модуль дешифровки
        try:
            from aldpro_core_env.password_decryptor import password_decrypt
        except ImportError as e:
            print(f"Ошибка импорта модуля aldpro_core_env: {e}", file=sys.stderr)
            print("Убедитесь, что модуль aldpro_core_env установлен и доступен в PYTHONPATH", file=sys.stderr)
            sys.exit(1)

        # Дешифруем пароль
        decrypted_password = password_decrypt(
            password_enc=args.encrypted_password,
            private_key_file=args.private_key_file
        )

        # Выводим результат в stdout
        print(decrypted_password)

    except Exception as e:
        print(f"Ошибка дешифровки: {e}", file=sys.stderr)
        sys.exit(1)


if __name__ == '__main__':
    main()