Skip to main content

Module process

Module process 

Source
Expand description

Обёртка над запуском внешних процессов.

Реальная работа с cargo/rustc/rustup идёт через трейт CommandRunner, что позволяет тестировать логику CLI без запуска настоящих процессов (в тестах подставлятся мок-раннер).

ТЗ 0.17.4: SystemRunner поддерживает индикатор прогресса — во время блокирующего вызова (output(), wait()) фоновый поток выводит в stderr \r⏳ <label> (<n>с) каждые 2 секунды, чтобы пользователь видел, что процесс ещё жив. При завершении строка очищается.

ТЗ 0.17.5: при run_with_progress stdout/stderr дочернего процесса перехватываются (Stdio::piped()) и накапливаются в фоне — на экране виден ТОЛЬКО спиннер. При ненулевом коде выхода накопленный вывод выводится в stderr, чтобы пользователь увидел причину ошибки.

Structs§

CommandOutput
Результат запуска внешней команды.
SystemRunner
Раннер, запускающий реальные процессы через std::process::Command.

Traits§

CommandRunner
Запускает внешние команды. Реализация по умолчанию — SystemRunner.

Functions§

parse_program_version
Извлекает semver-версию из первой строки вывода * --version.