Alterator/shell
Материал из ALT Linux Wiki
(Различия между версиями)
Ilis (обсуждение | вклад) |
Ilis (обсуждение | вклад) (→Простейший бэкенд) |
||
Строка 7: | Строка 7: | ||
Простейший бэкенд выглядит следующим образом: | Простейший бэкенд выглядит следующим образом: | ||
- | < | + | <source lang="bash"> |
+ | #!/bin/sh | ||
alterator_api_version=1 | alterator_api_version=1 | ||
Строка 21: | Строка 22: | ||
} | } | ||
- | message_loop on_message< | + | message_loop on_message |
+ | <source lang="bash"> | ||
=== Глобальные переменные=== | === Глобальные переменные=== |
Версия 17:35, 24 октября 2008
alterator-sh-functions
Простейший бэкенд
Простейший бэкенд выглядит следующим образом:
#!/bin/sh alterator_api_version=1 po_domain="alterator-text" . alterator-sh-functions on_message() { case "$in_action" in read) write_string_param name value ;; esac } message_loop on_message <source lang="bash"> === Глобальные переменные=== {| class="standard" !переменная !значение по умолчанию !описание |- |alterator_api_version |0 |Версия API. переменная должна обязательно определяться во всех новых модулях. Текущее значение версии '1'. |- |po_domain |alterator-<бэкенд> |Словарь используемый для переводя сообщений на родной язык пользователя |- |} === Ввод === ====message_loop==== Синтаксис: ''message_loop [<обработчик>]''<br> Основной цикл работы бэкенда, ''on_message'' - вызывается при каждом новом запросе к бэкенду. Входные параметры передаются через глобальные переменные с префиксом ''in_'' (например ''$in_action''). Результатом работы функции ''on_message'' является печать выходных параметров постредством функций с префиксом ''write_''. Имена входных и выходных параметров могут состоять только из латинских букв, цифр и символа подчёркивания. Использование других символов '''недопустимо'''. === Вывод === ====_==== Синтаксис: ''_ <строка> [<домен>]''<br/> Перевод строки на язык пользователя Перевод осуществляется в зависимости от значения входного параметра language. Если домен не указан, используется значение глобальной переменной po_domain. ====write_error==== Синтаксис: ''write_error <сообщение>''<br> Вывод сообщения об ошибке. После вывода ошибки '''обязательно должна''' стоять инструкция для выхода из функции. ====write_string_param==== Синтаксис: ''write_string_param <имя> <значение>''<br> Вывод значения параметра строкового типа. ====write_bool_param==== Синтаксис: ''write_bool_param <имя> <значение>''<br> Вывод значения параметра логического типа. <значения>, отличные от yes, no, on, true или 1 (в любом регистре), считаются ложными. ====write_enum_item==== Синтаксис: ''write_enum_item <ключ> [<метка>]''<br> Вывод элемента списка значений для параметра перечислимого типа. Вывод списка значений перечислимого типа обрабатывается отдельно. Недопустимо смешивать вывод значений перечислимого типа и других. <ключ> -- имя, один из вариантов текущего значения перечислимого типа которым пользуется бэкенд. Вывод текущего значения осуществляется в отдельной секции при помощи функции ''write_string_param''. <метка> -- описание значения, выводимое пользователю. Если метка не задана, то она считается равной <ключу>. Пример: <pre>list) write_enum_item "a" "variant a" write_enum_item "b" "variant b" ;; read) write_string_param "enum" "a" ;; #вывод текущего значения параметра по имени enum write) ... $in_enum ... ;; # обработка варианта выбранного пользователем, переменная равна или a или b</pre> ====write_enum==== Синтаксис: ''write_enum''<br> Трансляция потока в вывод списка значений для параметра перечислимого типа. Работает аналогично write_enum_item, но позволяет вывести сразу несколько вариантов. Cписок принимается на стандартный ввод в виде строк вида: ''<ключ><разделитель><метка>'' Вид <разделителя> управляется при помощи переменной среды IFS. ====write_table_item==== Синтаксис: ''write_table_item <параметр1> <значение1> <параметр2> <значение2> ...''<br> Вывод информации для строки таблицы. Так же как и вывод информации для enum, вывод строк таблицы выполняется отдельно (в действии list). === Отладка === ====write_debug==== Синтаксис: write_debug <формат> [<параметры...>]<br> Если выставленая переменная среды DEBUG, то печатается отладочная информация, иначе никакого вывода не происходит. Параметры такие же как и у функции printf.