Source code for core.cli_executor
import subprocess
from typing import Tuple
[docs]
class CLIExecutor:
"""Утилита для безопасного выполнения CLI‑команд.
Назначение:
Инкапсулирует вызов `subprocess.run` и приводит результат к удобному
кортежу (код возврата, stdout) без генерации исключений при ошибках.
"""
[docs]
@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")