Serj Kalichev 1 year ago
parent
commit
d6982d629d
1 changed files with 61 additions and 0 deletions
  1. 61 0
      docs/klish3.ru.md

+ 61 - 0
docs/klish3.ru.md

@@ -123,6 +123,9 @@ shell скрипты, но и скрипты на других интерпре
 (если конфигурировать сборку с --prefix=/usr). Их имена 'kplugin-<имя>.so',
 (если конфигурировать сборку с --prefix=/usr). Их имена 'kplugin-<имя>.so',
 например '/usr/lib/klish/plugins/kplugin-script.so'.
 например '/usr/lib/klish/plugins/kplugin-script.so'.
 
 
+Символы бывают "синхронные" и "асинхронные". Синхронные символы исполняются
+в адресном пространстве klishd, для асинхронных порождается отдельный процесс.
+
 
 
 ## Структура XML конфигурации
 ## Структура XML конфигурации
 
 
@@ -221,3 +224,61 @@ VIEW. Можно определить VIEW со "стандартными" ко
 завершилось с ошибкой. Если последовательно выполняются несколько действий,
 завершилось с ошибкой. Если последовательно выполняются несколько действий,
 имеющих флаг влияния на общий код возврата, то общим кодом возврата будет код
 имеющих флаг влияния на общий код возврата, то общим кодом возврата будет код
 возврата последнего такого действия.
 возврата последнего такого действия.
+
+
+### Фильтры
+
+Фильтры представляют собой команды, которые обрабатывают вывод других команд.
+Фильтр может быть указан в командной строке после основной команды и знака '|'.
+Фильтр не может быть самостоятельной командой и использоваться без основной
+команды. Примером типичного фильтра может служить аналог UNIX утилиты 'grep'.
+Фильтры могут использоваться один за другим, с разделителем '|', как это
+делается в shell.
+
+Фильтр задается в файлах конфигурации с помощью тега 'FILTER'.
+
+
+### Контейнеры параметров
+
+Контейнеры SWITCH и SEQ используются для аггрегации вложенных в них параметров и
+определяют правила по которым происходит разбор командной строки относительно
+этих параметров.
+
+По умолчанию считается, что если внутри команды определено последовательно
+несколько параметров, то все эти параметры так же последовательно должны
+присутствовать в командной строке. Однако иногда возникает необходимость, чтобы
+оператор ввел лишь один параметр по выбору из набора возможных параметров.
+В таком случае может использоваться контейнер SWITCH. Если при разборе командной
+строки внутри команды встречается контейнер SWITCH, то для соответствия
+следующему введенному оператором слова должет быть выбран только один параметр
+из параметров, вложенных в SWITCH. Т.е. с помощью контейнера SWITCH происходит
+ветвление разбора.
+
+Контейнер SEQ определяет последовательность параметров. Все они должны быть
+последовательно сопоставлены с командной строкой. Хотя, как было отмечено ранее,
+вложенные в команду параметры и так разбираются последовательно, однако
+контейнер может быть полезен в более сложных конструкциях. Например контейнер
+SEQ сам может быть элементом контейнера SWITCH.
+
+
+### Плугин
+
+Процесс klishd загружает не все существующие плугины функций подряд, а только
+те, которые указаны в конфигурации с помощью тега 'PLUGIN'. Данные внутри тега
+могут интерпретироваться функцией инициализации плугина по своему усмотрению,
+в частности, как конфигурация для плугина.
+
+
+### Горячие клавиши
+
+Для удобства оператора в конфигурации команд klish могут быть заданы "горячие
+клавиши". Тег для задания горячих клавиш - 'HOTKEY'. Список горячих клавиш
+передается сервером klishd клиенту. Клиент на свое усмотрение использует эту
+информацию или не использует. Например для клиента автоматизированного управления
+информация о горячих клавишах не имеет смысла.
+
+При определении горячей клавиши указывается текстовая команда, которая должна
+быть выполнена при нажатии горячей клавиши оператором. Это может быть быстрый
+показ текущей конфигурации устройства, выход из текущего VIEW, либо любая другая
+команда. Клиент klish "ловит" нажатие горячих клавиш и передает на сервер
+команду, соответствующую нажатой горячей клавише.