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

Материал из ALT Linux Wiki
Строка 17: Строка 17:
$ make generate-backend-sh
$ make generate-backend-sh
</pre>
</pre>
В результате появится файл backend3/simple. Посмотрим на него внимательнее. Основной цикл работы бакенда &mdash; функция '''message_loop'''. Функция '''on_message''' &mdash главная точка обработки входящих сообщений. Входящие параметры появляются в виде переменных shell с именем вида '$in_name'. Главный параметр '''action''' &mdash; определяет вид действия, который запрашивается у бакенда. Основные действия:
В результате появится файл backend3/simple. Посмотрим на него внимательнее. Основной цикл работы бакенда &mdash; функция '''message_loop'''. Функция '''on_message''' &mdash; главная точка обработки входящих сообщений. Входящие параметры появляются в виде переменных shell с именем вида $in_name. Главный параметр '''action''' &mdash; определяет вид действия, который запрашивается у бакенда. Основные действия:
* '''read''' &mdash; прочитать значение переменной
* '''read''' &mdash; прочитать значение переменной
* '''write''' &mdash; изменить значение переменной
* '''write''' &mdash; изменить значение переменной
Строка 23: Строка 23:
Остановимся более подробно на первых двух действиях. Научим бакенд при запросе "read" считывать значение переменной '''parameter''' из файла, а при запросе "write" записывать значение переменной '''parameter''' обратно в файл.
Остановимся более подробно на первых двух действиях. Научим бакенд при запросе "read" считывать значение переменной '''parameter''' из файла, а при запросе "write" записывать значение переменной '''parameter''' обратно в файл.
<pre>
<pre>
...
case "$in_action" in
     read)
     read)
         write_string_param parameter "$(cat /tmp/config 2>/dev/null)"
         write_string_param parameter "$(cat /tmp/config 2>/dev/null)"

Версия от 14:11, 31 июля 2008

Первый модуль

Лучше один раз увидеть, чем сто раз услышать, поэтому давайте сразу попробуем создать простейший модуль alterator. Сделаем проект alterator-simple — модуль который будет изменять значение одной переменной по имени parameter.

Бакенд

Сначала установим пакет alterator, создадим каталог с проектом и скопируем туда стандартный Makefile. Проект будет называться alterator-simple.

$ sudo apt-get install alterator
$ mkdir alterator-simple
$ cd alterator-simple
$ cp /usr/share/alterator/build/Makefile .

В скопированном Makefile изменим значение переменной NAME на "simple" и тут же воспользуемся стандартным правилом alterator для создания заготовки бакенда на shell:

$ make generate-backend-sh

В результате появится файл backend3/simple. Посмотрим на него внимательнее. Основной цикл работы бакенда — функция message_loop. Функция on_message — главная точка обработки входящих сообщений. Входящие параметры появляются в виде переменных shell с именем вида $in_name. Главный параметр action — определяет вид действия, который запрашивается у бакенда. Основные действия:

  • read — прочитать значение переменной
  • write — изменить значение переменной
  • list — получить список значений

Остановимся более подробно на первых двух действиях. Научим бакенд при запросе "read" считывать значение переменной parameter из файла, а при запросе "write" записывать значение переменной parameter обратно в файл.

case "$in_action" in
    read)
        write_string_param parameter "$(cat /tmp/config 2>/dev/null)"
        ;;
    write)
        [ -n "$in_parameter" ] && echo "$in_parameter" >/tmp/config
        ;;
...