Webhook handler with netcat

Webhook handler with netcat

Решил попробовать запустить деплой по нотификации от CI. Travis умеет дергать урлы при удачном билде. Осталось только среагировать на это.

Для реагирования нужна програмка. Програмка простая. Висит, слушает порт, а по сигналу запускает скрипт. Пошарив на гитхабе Я обнаружил маленькую тележку таких програм. Но, чаще всего они были заточены на определенные сервисы (Travis, Github), и для их запуска было необходимо снабдить машину Python-ом или NodJS-ом. Ставить NodeJS ради WebHook хендлера, запускающего скрипт!? Не, не мой вариант. Точно. Мы сделаем это “Linux Way”

Итак.

  • Задача: запустить скрипт после того, как нам придет event от CI [HTTP GET]
  • K.I.S.S.

Нам нужен сервер? Возьмем могучий netcat! В большинстве дистрибутивов он идет в комплекте.

while true; do echo "Deploy starts NOW!" | nc -l -p 1500 -q 0; ./deploy.sh sleep 1m; done

Вот так. В несколько строчек.