76 lines
2.3 KiB
Python
76 lines
2.3 KiB
Python
"""
|
||
Системные утилиты и функции проверки ОС
|
||
"""
|
||
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 ===") |