## tg-holy-bot Телеграммный бот для канала с праздниками. Раз в сутки забирает список праздников с к сайта celebratoday.com и показывает его на канальчике в телеграме. Создан исключительно в обучающих целях, как пример приложения на языке go. ## Как это собрать? Понадобится компилятор go версии 1.25.3 или более новый. Сам процесс сборки простой, достаточно запустить make или gmake, в зависимости от платформы: ```bash make ``` и через некоторое время мы получаем бинарник **tg-holy-bot**. Это и есть наше приложение. ### Как это запустить? Приложение тестировалось на alpine linux x86_64 3.16, но должно работать на любом (более свежем) linux-е. Предполагается, что конфиг написан в формате [human json](https://hjson.github.io), который допускает коментарии и некоторые другие вольности в форматировании json-а. Конфиг ищется последовательно по следующим путям по принципу "кто первый того и тапки": ``` ~/.tg-holy-bot.json /etc/tg-holy-bot.json data/config.json ``` В каталоге contrib находится скрипт для alpine linux, системы инициализации openrc. Этот скрипт достаточно положить в **/etc/init.d/tg-holy-bot**. После чего скопировать бинарник в каталог **/var/lib/tg-holy-bot**, положить конфиг в одну из дефолтных локаций (тестировалась **/var/lib/tg-holy-bot/data/config.json**) и после этого сервис запускается командой: ```bash service tg-holy-bot start ``` В автозагрузку его можно прописать через команду: ```bash rc-update add tg-holy-bot default ``` ### Nota Bene Go не поддерживает системный вызов fork() из-за чего демонизация программ на гошке средствами самой гошки - это в некотором роде проблема. Решается она с помощью утилиты [daemonize](https://github.com/bmc/daemonize). Соответствено, если для запуска этой программы предполагается использовать возможности демонизации, то можно воспользоваться этой программой. В alpine linux есть средства openrc для супервайзинга foreground-сервисов.