|
@@ -123,6 +123,9 @@ shell скрипты, но и скрипты на других интерпре
|
|
|
(если конфигурировать сборку с --prefix=/usr). Их имена 'kplugin-<имя>.so',
|
|
|
например '/usr/lib/klish/plugins/kplugin-script.so'.
|
|
|
|
|
|
+Символы бывают "синхронные" и "асинхронные". Синхронные символы исполняются
|
|
|
+в адресном пространстве klishd, для асинхронных порождается отдельный процесс.
|
|
|
+
|
|
|
|
|
|
## Структура 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 "ловит" нажатие горячих клавиш и передает на сервер
|
|
|
+команду, соответствующую нажатой горячей клавише.
|