Make config

Матеріал з NoDeny
Версія від 12:56, 19 березня 2019, створена Sv (обговорення | внесок)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Модуль ядра make config входит в базовую поставку и позволяет создавать конфигурационные файлы на лету. Например, с помощью make_config можно формировать:

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


Пример шаблона для экспорта в csv:

{% for user in users %}
{{ user.name }};{{ user.show_data._adr_street }}
{% endfor %}

Здесь user.show_data._adr_street - вывод дополнительного поля _adr_street.

Необходимо отметить, что в дополнительных данных есть тип поля "выпадающий список", при этом в самом поле может храниться код, а отображаемое значение будет находиться в таблице dictionary:

  • {{ user.data._adr_street }} - вывод значения, которое хранится в поле _adr_street (т.е там может быть код улицы)
  • {{ user.show_data._adr_street }} - вывод преобразованного значения (имени улицы)


Кроме самого шаблона необходим файл настроек для модуля make_config: kernel/make_config.cfg. Он может быть таким:

run     => 0,
period  => 60,
template  => {
            'users.tmpl' => {
                # куда будет записан результат
                file       => '/tmp/users.csv',

                # системная команда, которая будет выполнена перед записью результата, можно ''
                cmd_before => '',

                # системная команда, которая будет выполнена после записи результата, можно ''
                cmd_after  => '',

                # удалять пустые строки
                pretty => 1,
            },
}

Здесь:

  • users.tmpl - имя файла с шаблоном;
  • /tmp/users.csv - имя файла, куда будет записан результат;
  • переменная period указывает на период в секундах, с которым будет формироваться результат.

Запустим модуль make_config с выводом результата на экран:

perl /usr/local/nodeny/nokernel.pl -v -m=make_config

Если результат корректный, добавим запуск make_config в автозагрузку:

echo '/usr/bin/perl /usr/local/nodeny/nokernel.pl -m=make_config -d &' >> /etc/rc.local