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

Материал из ALT Linux Wiki
Строка 37: Строка 37:
=====write_error=====
=====write_error=====
Синтаксис: ''write_error <сообщение>''<br>
Синтаксис: ''write_error <сообщение>''<br>
вывод сообщения об ошибке.  
Вывод сообщения об ошибке.  


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

Версия от 13:35, 1 сентября 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

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

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

alterator_api_version - версия API, переменная обязательно должна определяться во всех новых бакендах. Текущее значение версии - 1.

Вывод

_

Синтаксис: _ <строка> [<домен>]
перевод строки

Перевод осуществляется в зависимости от значения входного параметра 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> ... вывод информации для строки таблицы.

Отладка

write_debug <формат> [<параметры...>] если выставленая переменная среды DEBUG, то печатается отладочная информация, иначе никакого вывода не происходит. Параметры такие же как и у функции printf.