no-style

Сниппет для авто создания переменных для проекта(ов) из ini фаила


О сниппете

Продолжительное время я искал способ который помог бы упростить работу с пачкой взаимосвязанных шаблонов zenno poster 10-20 штук. Мне нужно было какое то решение которое бы позволяло в одном месте вписать некие полезные данные, с которыми работают сразу все эти шаблоны.

Каждый шаблон из пачки работал с базой данных. Сама база данных находилась в докер контейнере и каталась туда сюда по разным хостам. После чего заходить и менять значения для каждого из 20 шаблонов во входных настройках было как то лениво и казалось чересчур времязатратным.

Тот кто ищет, тот всегда найдёт. Незамедлительно был найден топик который помог решить необходимую задачу. Поразительно как он раньше не попался мне на глаза. В который раз меня поражает, в хорошем смысле, то что можно найти на просторах форума zennolabs.







Принцип работы сниппета

Для того чтобы всё получилось мы должны выполнить 2 условия:

1) В нужном месте шаблона, например в самом начале добавить сниппет.
Тут самое главное указать путь до фаила config.ini все остальные параметры можно оставить по умолчанию.

2) В корне проекта создать фаил config.ini. В этот фаил мы помещаем переменные и их значения, которые будут автоматически созданы при выполнении сниппета.

zenno snippet autocreate vars from config-ini result

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

zenno snippet autocreate vars from config-ini result

На всякий случай прикладываю готовый демо проект.







Расположение фаила config.ini

Если у вас проекты лежат каждый в отдельной папке, при этом все они находятся внутри одной папки. Например вот так

    My Super Project
  • 0-Parser
  • 1-Register
  • 2-Poster
  • 3-Checker

То имеет смысл вынести фаил конфига на 1 папку выше, в главную папку проекта. Но тогда не забудьте поменять в сниппете путь до конфига с такого

string config_file = "config.ini";

На такой. (если надо считывать конфиг который находится на 1 папку выше)

string config_file = "../config.ini";

Комментарии