#!/bin/sh
# postinst script
#
# see: dh_installdeb(1)

set -e

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <postinst> `abort-remove'
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package


case "$1" in
    configure)

    # API
    chown -R www-data: /etc/yandex/passport-api/

    if [ -x /bin/systemctl ]; then
        systemctl enable yandex-passport-api
    fi

    /usr/bin/ln_environment /etc/yandex/passport-tvm-keyring/conf-available/passport_api /etc/yandex/passport-tvm-keyring/conf-enabled/passport_api
    /usr/bin/passport-tvm-keyring update -v --force
    /usr/bin/passport-tvm-keyring validate

    ENV_TYPE=$(cat /etc/yandex/environment.type)
    ENV_NAME="localhost"
    if test -f "/etc/yandex/environment.name"; then
        ENV_NAME=$(cat /etc/yandex/environment.name)
    fi
    # Golovan/xunistater
    if [ "${ENV_TYPE}" != "stress" ]; then
        /usr/share/passport-admin-config-golovan/passport_golovan_config.py -i passportpythonapi -p "passport-python-api" > /etc/yandex/yasmagent/instances.d/passport-python-api || true
        invoke-rc.d yasmagent restart || true

        if [ -x /bin/systemctl ]; then
            if ! systemctl is-enabled yandex-passport-xunistater@passport-python-api > /dev/null; then
                systemctl enable yandex-passport-xunistater@passport-python-api || true
            fi
            deb-systemd-invoke restart yandex-passport-xunistater@passport-python-api || true
        else
            update-rc.d yandex-passport-xunistater defaults || true
            invoke-rc.d yandex-passport-xunistater restart || true
        fi
    fi

    # Logbroker push client
    LB_HOST="logbroker.yandex.net"
    LB_SERVER_ID="2001059"
    LB_BACKEND_ID="2000078"

    LB_CONFIGS="push-client"
    if [ "${ENV_NAME}" != "intranet" ]; then
        LB_CONFIGS="${LB_CONFIGS} push-client-historydb push-client-backend push-client-auth push-client-antifraud push-client-pharma push-client-lbc push-client-drive push-client-family push-client-social-broker push-client-credentials"
    fi

    # production only
    if [ "${ENV_TYPE}" = "production" ]; then
        if [ "${ENV_NAME}" = "localhost" ]; then
            LB_CONFIGS="${LB_CONFIGS} push-client-backend-infosec"
        fi
    fi

    for LB_CONFIG in ${LB_CONFIGS}; do
        if [ "${ENV_TYPE}" != "production" -a "${ENV_TYPE}" != "rc" ]; then
            LB_HOST="logbroker-pre.yandex.net"
            LB_SERVER_ID="2001147"
            LB_BACKEND_ID="2000079"
        fi

        if [ "${ENV_NAME}" = "intranet" ]; then
            LB_BACKEND_ID="2000091"
            if [ "${ENV_TYPE}" != "production" -a "${ENV_TYPE}" != "rc" ]; then
                LB_BACKEND_ID="2000092"
            fi
        fi
        LB_LOG="/var/log/statbox/${LB_CONFIG}.log"
        LB_STATE="/var/lib/${LB_CONFIG}"
        LB_TPL="/etc/yandex/statbox-push-client/templates/${LB_CONFIG}.tpl"
        LB_CONFIG="/etc/yandex/statbox-push-client/${LB_CONFIG}.yaml"

        # PASSPADMIN-5789
        if [ -f "${LB_TPL}.${ENV_NAME}" ]; then
            LB_TPL="${LB_TPL}.${ENV_NAME}"
        elif [ -f "${LB_TPL}.${ENV_TYPE}" ]; then
            LB_TPL="${LB_TPL}.${ENV_TYPE}"
        fi

        if [ ! -f "${LB_TPL}" ]; then
            continue
        fi
        echo "Processing push client template ${LB_TPL} -> ${LB_CONFIG}"

        touch "${LB_LOG}"
        chown statbox:statbox "${LB_LOG}"

        if [ ! -d "${LB_STATE}" ]; then
            mkdir "${LB_STATE}"
            chown statbox:statbox "${LB_STATE}"
        fi

        cat "${LB_TPL}"                                     | \
            sed -e "s|%%LB_HOST%%|${LB_HOST}|g"             | \
            sed -e "s|%%LB_SERVER_ID%%|${LB_SERVER_ID}|g"   | \
            sed -e "s|%%LB_BACKEND_ID%%|${LB_BACKEND_ID}|g" | \
            sed -e "s|%%LB_LOG%%|${LB_LOG}|g"               | \
            sed -e "s|%%LB_STATE%%|${LB_STATE}|g"           > "${LB_CONFIG}"
    done
    if [ -x "/etc/init.d/statbox-push-client" ]; then
        invoke-rc.d statbox-push-client restart
    fi
    ;;

    abort-upgrade|abort-remove|abort-deconfigure)
    ;;

    *)
        echo "postinst called with unknown argument \`$1'" >&2
        exit 1
    ;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

#DEBHELPER#

exit 0
