#!/bin/sh

if [ "$1" = '-h' -o "$1" = '--help' ]; then
    printf '\n  %s\n  JS_TEMPLATER_RESTART_PARALLEL_LEVEL=5 %s\n\nПерезапустить js-templater с закрытием от балансера и координацией с другими хостами (через switchman).\nЗапускается без аргументов.\nКоличество одновременных перезапуском регулируется переменной окружения JS_TEMPLATER_RESTART_PARALLEL_LEVEL (по умолчанию 10).\n\n' "$0" "$0"
    exit 0
fi

switchman -c /etc/deploy-switchman.conf --lockname "js_templater_restart_`hostname`" --no-lock --lease js_templater_restart=1:"${JS_TEMPLATER_RESTART_PARALLEL_LEVEL:-10}" -- sh <<'EOF'
set -e

printf 'start: %s\n' "$(date +'%Y%m%d %H:%M:%S')"

already_closed=0
if ( iptruler dump | grep -q tcp-reset ); then
    already_closed=1
fi

[ "$already_closed" = 0 ] && iptruler all down
printf 'sleeping for 5s\n'
sleep 5
sv force-restart js-templater || true
[ "$already_closed" = 0 ] && iptruler all up
printf 'sleeping for 5s\n'
sleep 5
printf 'finish: %s\n' "$(date +'%Y%m%d %H:%M:%S')"
EOF
