2.1 KiB
Запуск команд в shell
pipe
Функция pipeShell
выполняет команду ping 8.8.8.8 -c 4
, перенаправляет её стандартный вывод в программу, читает его построчно и выводит в консоль. Обрабатывает возможные ошибки с помощью блока try-catch
. Использует модули std.process
и std.stdio
для работы с процессами и вывода.
spinner
Функция spinnerShell
создаёт анимацию спиннера в консоли, используя брайлевские символы для имитации процесса обработки. Устанавливает обработчик сигнала Ctrl+C
для корректного завершения с восстановлением курсора. Выполняет цикл с задержкой 100 мс, отображая вращающийся символ, и завершает выполнение с выводом "Done!". Использует модули std.stdio
, core.thread
, core.time
и функции C для работы с сигналами и выводом.
ospinner
Функция oSpinnerShell
демонстрирует объектно-ориентированный подход к созданию анимации спиннера в консоли. Использует абстрактный класс Command
для выполнения задач с анимацией спиннера (брайлевские символы). Класс LongRunningCommand
имитирует длительную задачу (5 секунд). Обработчик Ctrl+C
завершает выполнение с восстановлением курсора. Анимация отображает имя команды и сообщение, завершаясь выводом "Done!". Использует модули std.stdio
, core.thread
, core.time
, core.stdc.signal
, core.stdc.stdio
, core.stdc.stdlib
.