Alterator/module/first: различия между версиями
(→Бакенд) |
|||
Строка 17: | Строка 17: | ||
$ make generate-backend-sh | $ make generate-backend-sh | ||
</pre> | </pre> | ||
В результате появится файл backend3/simple. Научим | В результате появится файл backend3/simple. Посмотрим на него внимательнее. Основной цикл работы бакенда — функция '''message_loop'''. '''on_message''' — главная функция обработки входящих сообщений. Входящие параметры появляются в виде переменных shell с именем вида '$in_name'. Главный параметр '''action''' — определяет вид действия, который запрашивается у бакенда. Основные действия: | ||
* '''read''' — прочитать значение переменной | |||
* '''write''' — изменить значение переменной | |||
* '''list''' — получить список значений | |||
Остановимся более подробно на первых двух действиях. Научим бакенд при запросе "read" считывать значение переменной '''parameter''' из файла, а при запросе "write" записывать значение переменной '''parameter''' обратно в файл. | |||
<pre> | |||
... | |||
read) | |||
write_string_param parameter "$(cat /tmp/config 2>/dev/null)" | |||
;; | |||
write) | |||
[ -n "$in_parameter" ] && echo "$in_parameter" >/tmp/config | |||
;; | |||
... | |||
</pre> |
Версия от 14:08, 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 обратно в файл.
... read) write_string_param parameter "$(cat /tmp/config 2>/dev/null)" ;; write) [ -n "$in_parameter" ] && echo "$in_parameter" >/tmp/config ;; ...