Alterator/shell — различия между версиями

Материал из ALT Linux Wiki
Перейти к: навигация, поиск
(write_debug)
(-f.i)
Строка 1: Строка 1:
[[Category:Sisyphus]]
+
[[Категория:Sisyphus]]
{{MovedFromFreesourceInfo|AltLinux/Sisyphus/Alterator/shell}}
 
  
 
== alterator-sh-functions ==
 
== alterator-sh-functions ==
  
===Простейший бэкенд===
+
=== Простейший бэкенд ===
  
 
Простейший бэкенд выглядит следующим образом:
 
Простейший бэкенд выглядит следующим образом:
Строка 25: Строка 24:
 
</source>
 
</source>
  
=== Глобальные переменные===
+
=== Глобальные переменные ===
 
{| class="standard"
 
{| class="standard"
 
!переменная
 
!переменная
Строка 43: Строка 42:
 
=== Ввод ===
 
=== Ввод ===
  
====message_loop====
+
==== message_loop ====
Синтаксис: ''message_loop [<обработчик>]''<br>
+
Синтаксис: ''message_loop [<обработчик>]''<br />
Основной цикл работы бэкенда, ''on_message'' - вызывается при каждом новом запросе к бэкенду. Входные параметры передаются через глобальные переменные с префиксом ''in_'' (например ''$in_action'').  
+
Основной цикл работы бэкенда, ''on_message'' — вызывается при каждом новом запросе к бэкенду. Входные параметры передаются через глобальные переменные с префиксом ''in_'' (например ''$in_action'').
Результатом работы функции ''on_message'' является печать выходных параметров постредством функций с префиксом ''write_''.  
+
Результатом работы функции ''on_message'' является печать выходных параметров постредством функций с префиксом ''write_''.
  
 
Имена входных и выходных параметров могут состоять только из латинских букв, цифр и символа подчёркивания. Использование других символов '''недопустимо'''.
 
Имена входных и выходных параметров могут состоять только из латинских букв, цифр и символа подчёркивания. Использование других символов '''недопустимо'''.
  
 
=== Вывод ===
 
=== Вывод ===
====_====
 
  
Синтаксис: ''_ <строка> [<домен>]''<br/>
+
==== _ ====
 +
 
 +
Синтаксис: ''_ <строка> [<домен>]''<br />
 
Перевод строки на язык пользователя
 
Перевод строки на язык пользователя
  
 
Перевод осуществляется в зависимости от значения входного параметра language. Если домен не указан, используется значение глобальной переменной po_domain.
 
Перевод осуществляется в зависимости от значения входного параметра language. Если домен не указан, используется значение глобальной переменной po_domain.
  
====write_error====
+
==== write_error ====
Синтаксис: ''write_error <сообщение>''<br>
+
Синтаксис: ''write_error <сообщение>''<br />
Вывод сообщения об ошибке.  
+
Вывод сообщения об ошибке.
  
 
После вывода ошибки '''обязательно должна''' стоять инструкция для выхода из функции.
 
После вывода ошибки '''обязательно должна''' стоять инструкция для выхода из функции.
  
====write_string_param====
+
==== write_string_param ====
Синтаксис: ''write_string_param <имя> <значение>''<br>
+
Синтаксис: ''write_string_param <имя> <значение>''<br />
 
Вывод значения параметра строкового типа.
 
Вывод значения параметра строкового типа.
  
====write_bool_param====
+
==== write_bool_param ====
Синтаксис: ''write_bool_param <имя> <значение>''<br>
+
Синтаксис: ''write_bool_param <имя> <значение>''<br />
Вывод значения параметра логического типа. <значения>, отличные от yes, no, on, true или 1 (в любом регистре), считаются ложными.
+
Вывод значения параметра логического типа. <значения>, отличные от yes, no, on, true или 1 (в любом регистре), считаются ложными.
  
====write_enum_item====
+
==== write_enum_item ====
 
Синтаксис: ''write_enum_item <ключ> [<метка>]''
 
Синтаксис: ''write_enum_item <ключ> [<метка>]''
  
 
Вывод элемента списка значений для параметра перечислимого типа.
 
Вывод элемента списка значений для параметра перечислимого типа.
  
Вывод списка значений перечислимого типа обрабатывается отдельно. Недопустимо смешивать вывод значений перечислимого типа и других.  
+
Вывод списка значений перечислимого типа обрабатывается отдельно. Недопустимо смешивать вывод значений перечислимого типа и других.
  
<ключ> имя, один из вариантов текущего значения перечислимого типа которым пользуется бэкенд. Вывод текущего значения осуществляется в отдельной секции при помощи функции ''write_string_param''.
+
<ключ> — имя, один из вариантов текущего значения перечислимого типа которым пользуется бэкенд. Вывод текущего значения осуществляется в отдельной секции при помощи функции ''write_string_param''.
  
<метка> описание значения, выводимое пользователю. Если метка не задана, то она считается равной <ключу>.
+
<метка> — описание значения, выводимое пользователю. Если метка не задана, то она считается равной <ключу>.
  
 
Пример:
 
Пример:
Строка 94: Строка 94:
 
</source>
 
</source>
  
====write_enum====
+
==== write_enum ====
Синтаксис: ''write_enum''<br>
+
Синтаксис: ''write_enum''<br />
 
Трансляция потока в вывод списка значений для параметра перечислимого типа.
 
Трансляция потока в вывод списка значений для параметра перечислимого типа.
  
Строка 102: Строка 102:
 
Вид <разделителя> управляется при помощи переменной среды IFS.
 
Вид <разделителя> управляется при помощи переменной среды IFS.
  
====write_table_item====
+
==== write_table_item ====
Синтаксис: ''write_table_item <параметр1> <значение1> <параметр2> <значение2> ...''<br>
+
Синтаксис: ''write_table_item <параметр1> <значение1> <параметр2> <значение2> ''<br />
 
Вывод информации для строки таблицы.
 
Вывод информации для строки таблицы.
  
Строка 109: Строка 109:
  
 
=== Отладка ===
 
=== Отладка ===
====write_debug====
+
 
Синтаксис: write_debug <формат> [<параметры...>]<br>
+
==== write_debug ====
 +
Синтаксис: write_debug <формат> [<параметры...>]<br />
 
Если выставленая переменная среды ALTERATOR_DEBUG, то печатается отладочная информация, иначе никакого вывода не происходит. Параметры такие же как и у функции printf.
 
Если выставленая переменная среды ALTERATOR_DEBUG, то печатается отладочная информация, иначе никакого вывода не происходит. Параметры такие же как и у функции printf.
 
Переменная ALTERATOR_DEBUG автоматически выставляется при запуске любого интерфейса alterator в отладочном режиме.
 
Переменная ALTERATOR_DEBUG автоматически выставляется при запуске любого интерфейса alterator в отладочном режиме.

Версия 10:32, 18 ноября 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

Глобальные переменные

переменная значение по умолчанию описание
alterator_api_version 0 Версия API. переменная должна обязательно определяться во всех новых модулях. Текущее значение версии '1'.
po_domain alterator-<бэкенд> Словарь используемый для переводя сообщений на родной язык пользователя

Ввод

message_loop

Синтаксис: message_loop [<обработчик>]
Основной цикл работы бэкенда, on_message — вызывается при каждом новом запросе к бэкенду. Входные параметры передаются через глобальные переменные с префиксом in_ (например $in_action). Результатом работы функции on_message является печать выходных параметров постредством функций с префиксом write_.

Имена входных и выходных параметров могут состоять только из латинских букв, цифр и символа подчёркивания. Использование других символов недопустимо.

Вывод

_

Синтаксис: _ <строка> [<домен>]
Перевод строки на язык пользователя

Перевод осуществляется в зависимости от значения входного параметра language. Если домен не указан, используется значение глобальной переменной po_domain.

write_error

Синтаксис: write_error <сообщение>
Вывод сообщения об ошибке.

После вывода ошибки обязательно должна стоять инструкция для выхода из функции.

write_string_param

Синтаксис: write_string_param <имя> <значение>
Вывод значения параметра строкового типа.

write_bool_param

Синтаксис: write_bool_param <имя> <значение>
Вывод значения параметра логического типа. <значения>, отличные от yes, no, on, true или 1 (в любом регистре), считаются ложными.

write_enum_item

Синтаксис: write_enum_item <ключ> [<метка>]

Вывод элемента списка значений для параметра перечислимого типа.

Вывод списка значений перечислимого типа обрабатывается отдельно. Недопустимо смешивать вывод значений перечислимого типа и других.

<ключ> — имя, один из вариантов текущего значения перечислимого типа которым пользуется бэкенд. Вывод текущего значения осуществляется в отдельной секции при помощи функции write_string_param.

<метка> — описание значения, выводимое пользователю. Если метка не задана, то она считается равной <ключу>.

Пример:

    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

write_enum

Синтаксис: write_enum
Трансляция потока в вывод списка значений для параметра перечислимого типа.

Работает аналогично write_enum_item, но позволяет вывести сразу несколько вариантов. Cписок принимается на стандартный ввод в виде строк вида: <ключ><разделитель><метка> Вид <разделителя> управляется при помощи переменной среды IFS.

write_table_item

Синтаксис: write_table_item <параметр1> <значение1> <параметр2> <значение2> …
Вывод информации для строки таблицы.

Так же как и вывод информации для enum, вывод строк таблицы выполняется отдельно (в действии list).

Отладка

write_debug

Синтаксис: write_debug <формат> [<параметры...>]
Если выставленая переменная среды ALTERATOR_DEBUG, то печатается отладочная информация, иначе никакого вывода не происходит. Параметры такие же как и у функции printf. Переменная ALTERATOR_DEBUG автоматически выставляется при запуске любого интерфейса alterator в отладочном режиме.