gonets/SRV/core/cli_executor.py

31 lines
1.1 KiB
Python
Raw Normal View History

import subprocess
from typing import Tuple
class CLIExecutor:
2025-10-14 11:42:57 +05:00
"""Утилита для безопасного выполнения CLI‑команд.
Назначение:
Инкапсулирует вызов `subprocess.run` и приводит результат к удобному
кортежу (код возврата, stdout) без генерации исключений при ошибках.
"""
@staticmethod
def run(command: list) -> Tuple[int, str]:
"""
Выполняет команду в системе и возвращает код и вывод.
Args:
command (list): Список аргументов команды для выполнения.
Returns:
tuple: Код возврата и вывод команды.
"""
result = subprocess.run(
command,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
check=False, # Не вызываем исключение при ошибке
)
return result.returncode, result.stdout.decode("utf-8")