savagedb_bot/utils/system_utils.py

76 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""
Системные утилиты и функции проверки ОС
"""
import platform
import logging
import os
def get_operating_system() -> str:
"""
Определяет операционную систему на которой запущен код
Returns:
str: 'Windows', 'Linux', 'macOS' или 'Unknown'
"""
system = platform.system().lower()
if system == 'windows':
return 'Windows'
elif system == 'linux':
return 'Linux'
elif system == 'darwin':
return 'macOS'
else:
return f'Unknown ({system})'
def is_windows() -> bool:
"""Проверяет, запущен ли код на Windows"""
return get_operating_system() == 'Windows'
def is_linux() -> bool:
"""Проверяет, запущен ли код на Linux"""
return get_operating_system() == 'Linux'
def is_macos() -> bool:
"""Проверяет, запущен ли код на macOS"""
return get_operating_system() == 'macOS'
def log_system_info():
"""
Логирует информацию о системе при запуске
"""
os_name = get_operating_system()
python_version = platform.python_version()
platform_info = platform.platform()
logging.info("=== SYSTEM INFORMATION ===")
logging.info(f"Operating System: {os_name}")
logging.info(f"Platform: {platform_info}")
logging.info(f"Python Version: {python_version}")
logging.info(f"Architecture: {platform.architecture()[0]}")
logging.info(f"Processor: {platform.processor()}")
# Проверяем переменные окружения
if os.getenv('BOT_TOKEN'):
logging.info("BOT_TOKEN: ✅ Set")
else:
logging.warning("BOT_TOKEN: ❌ Not set")
if os.getenv('DB_USER'):
logging.info("Database credentials: ✅ Set")
else:
logging.warning("Database credentials: ❌ Not set")
# Проверяем запуск в Docker
if os.path.exists('/.dockerenv'):
logging.info("Environment: 🐳 Docker container")
logging.info(f"Container timezone: {os.getenv('TZ', 'UTC')}")
logging.info(f"Container user: {os.getenv('USER', 'unknown')}")
else:
logging.info("Environment: 🖥️ Host system")
logging.info("=== SYSTEM CHECK COMPLETE ===")