Skip to content

bugogish/au_software_design-CLI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Software Design — CLI

CLI - Command-line Interface

Общая краткая информация

Shell бесконечно (пока не будет вызвана операция Exit) считывает по строке из входного потока и обрабатывает каждую, вызывая для них методы класса Parser.
Parser обрабатывает сырые строки с помощью конечного автомата - распознаёт операции подстановки из окружения ($) и выполняет их на месте. В итоге Parser получает на выходе очередь из RawCommandData (класс, содержащий информацию о введенной команде). Затем Parser передаёт управление Shell'у.
Получив очередь RawCommandData, связанных операцией пайплайна, Shell начинает их выполнение.
Если операции были связаны операцией пайплайна — то Shell занимается тем, чтобы передать информацию из выходного потока только что выполненной команды — во входной поток следующей команды. Каждая операция CLI, которую запускает Shell, является реализацией интерфейса Command. Для запуска каждой из них им нужно подать на вход входной поток. Возвращает каждая такая команда выходной поток, содержащий её данные.
После выполнения всех команд в очереди Shell выводит информацию из выходного потока на экран (если она есть).
Если в ходе выполения операций будет выполнена операция Exit, то Shell проверит это и закончит выполнение сразу же, после завершения операции Exit и возврата управления в Shell.

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Languages