Alterator/shell

Материал из ALT Linux Wiki

(Различия между версиями)
Перейти к: навигация, поиск
(Простейший бэкенд)
Строка 7: Строка 7:
Простейший бэкенд выглядит следующим образом:
Простейший бэкенд выглядит следующим образом:
-
<pre>#!/bin/sh
+
<source lang="bash">
 +
#!/bin/sh
alterator_api_version=1
alterator_api_version=1
Строка 21: Строка 22:
}
}
-
message_loop on_message</pre>
+
message_loop on_message
 +
<source lang="bash">
=== Глобальные переменные===
=== Глобальные переменные===

Версия 17:35, 24 октября 2008

Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


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.
 
Личные инструменты