|
@@ -914,20 +914,77 @@ SEQ сам может быть элементом контейнера SWITCH.
|
|
|
блокировки.
|
|
|
|
|
|
|
|
|
-#### Атрибут `interactive`
|
|
|
-
|
|
|
-Атрибут определяет является ли действие интерактивным. Например запуск текстового
|
|
|
-редактора является интерактивным, т.к. при работе в редакторе,
|
|
|
-действия пользователя влияют на результат и должны поступать от программы клиента
|
|
|
-к серверу. Также и изменения со стороны редактора должны немедленно отображаться
|
|
|
-у оператора.
|
|
|
-
|
|
|
-Возможные значения атрибута - `true` и `false`. По умолчанию `false`, т.е.
|
|
|
-действие не является интерактивным.
|
|
|
-
|
|
|
-Если действие объявлено интерактивным, то при его выполнении создается
|
|
|
-псевдо-терминал для обмена с пользователем. Не рекомендуется выставлять флаг
|
|
|
-интерактивности для не-интерактивных действий.
|
|
|
+#### Атрибут `in`
|
|
|
+
|
|
|
+Атрибут показывает, может ли действие принимать данные через стандартный ввод
|
|
|
+(stdin) от пользователя. Возможные значения - `true`, `false`, `tty`.
|
|
|
+Значение по умолчанию `false`.
|
|
|
+Значение `false` означает, что действие не принимает данные через
|
|
|
+стандартный ввод. Значение `true` означает, что действие принимает данные через
|
|
|
+стандартный ввод. Значение `tty` означает, что действие принимает данные через
|
|
|
+стандартный ввод и, при этом, стандартный ввод является терминалом.
|
|
|
+
|
|
|
+При выполнении действия, клиент ставится в известность о статусе стандартного
|
|
|
+ввода и, в соответствии с ним, ждет от пользователя ввода или нет.
|
|
|
+
|
|
|
+Если команда подразумевает последовательное выполнение сразу нескольких действий,
|
|
|
+и хотя бы одно действие имеет атрибут со значением `tty`, то считается, что вся
|
|
|
+команда имеет атрибут `tty`. Если в команде нет действий со значением атрибута
|
|
|
+`tty`, то ищется атрибут со значением `true`. Если хоть одно действие имеет
|
|
|
+значение атрибута `true`, то и вся команда имеет атрибут `true`. В противном
|
|
|
+случае, команда имеет атрибут `false`.
|
|
|
+
|
|
|
+Если пользователь отправил на выполнение не одну команду, а цепочку команд
|
|
|
+(через знак `|`), то применяется следующая логика для уведомления клиента,
|
|
|
+требуется ли получение стандартного ввода. Если хоть одно команда в цепочке имеет
|
|
|
+значение атрибута `tty`, то стандартный ввод требуется. Если первая команда в
|
|
|
+цепочке имеет атрибут `true`, то стандартный ввод требуется. В противном случае
|
|
|
+стандартный ввод не требуется.
|
|
|
+
|
|
|
+При выполнении действия, обслуживающий сервер может создать псевдотерминал и
|
|
|
+предоставить его действию в качестве стандартного ввода. Будет ли стандартный
|
|
|
+ввод псевдотерминалом или нет, определяется тем, является ли стандартный ввод на
|
|
|
+клиентской стороне терминалом или нет. Эта информация передается от клиента
|
|
|
+серверу в статусном слове.
|
|
|
+
|
|
|
+
|
|
|
+#### Атрибут `out`
|
|
|
+
|
|
|
+Атрибут показывает, выводит ли действие данные через стандартный вывод (stdout).
|
|
|
+Возможные значения - `true`, `false`, `tty`.
|
|
|
+Значение по умолчанию `true`.
|
|
|
+Значение `false` означает, что действие не выводит данные через
|
|
|
+стандартный вывод. Значение `true` означает, что действие выводит данные через
|
|
|
+стандартный вывод. Значение `tty` означает, что действие выводит данные через
|
|
|
+стандартный вывод и, при этом, стандартный вывод является терминалом.
|
|
|
+
|
|
|
+При выполнении действия, клиент ставится в известность о статусе стандартного
|
|
|
+вывода и, в соответствии с ним, вводит стандартный вывод в режим
|
|
|
+необрабатываемого (raw) терминала или нет.
|
|
|
+
|
|
|
+Обычно текстовый клиент запускает на своей стороне пейджер для обработки вывода
|
|
|
+каждой команды. Если атрибут команды имеет значение `tty`, то пейджер не
|
|
|
+запускается. Предполагается, что выполняется интерактивная команда.
|
|
|
+
|
|
|
+Если команда подразумевает последовательное выполнение сразу нескольких действий,
|
|
|
+и хотя бы одно действие имеет атрибут со значением `tty`, то считается, что вся
|
|
|
+команда имеет атрибут `tty`. Если в команде нет действий со значением атрибута
|
|
|
+`tty`, то ищется атрибут со значением `true`. Если хоть одно действие имеет
|
|
|
+значение атрибута `true`, то и вся команда имеет атрибут `true`. В противном
|
|
|
+случае, команда имеет атрибут `false`.
|
|
|
+
|
|
|
+Если пользователь отправил на выполнение не одну команду, а цепочку команд
|
|
|
+(через знак `|`), то применяется следующая логика для уведомления клиента о
|
|
|
+статусе стандартного вывода. Если хоть одна команда в цепочке имеет
|
|
|
+значение атрибута `tty`, то клиенту передается флаг "интерактивности". В
|
|
|
+противном случае клиент работает в обычном режиме.
|
|
|
+
|
|
|
+При выполнении действия, обслуживающий сервер может создать псевдотерминал и
|
|
|
+предоставить его действию в качестве стандартного вывода. Будет ли стандартный
|
|
|
+вывод псевдотерминалом или нет, определяется тем, является ли стандартный вывод
|
|
|
+на клиентской стороне терминалом и установлен ли атрибут команды в значение
|
|
|
+`tty`. Информация о том, является ли стандартный вывод со стороны клиента
|
|
|
+терминалом передается от клиента серверу в статусном слове.
|
|
|
|
|
|
|
|
|
#### Атрибут `permanent`
|