#!/bin/sh

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

PKG="cauth-ldap-slave-haproxy-config"
CONFIG_ROOT="/etc/cauth-ldap-slave-haproxy-config"
HAPROXY_CONFIG_ROOT="/etc/haproxy"
YANDEX_ENVIRONMENT=$(cat /etc/yandex/environment.type)


check_yandex_environment() {
    if [ -z "${YANDEX_ENVIRONMENT}" ]; then
        echo "ERROR: No yandex environment set, check contents of /etc/yandex/environment.type"
        exit 1
    fi
    if [ "${YANDEX_ENVIRONMENT}" = "production" ]; then
        echo "INFO: Installing onto \"production\" Yandex environment"
    elif [ "${YANDEX_ENVIRONMENT}" = "testing" ]; then
        echo "INFO: Installing onto \"testing\" Yandex environment"
    else
        echo "ERROR: Unknown Yandex environment, check /etc/yandex/environment.type contents."
        exit 1
    fi
} # check_yandex_environment()

configure_environment() {
    ENV_CONFIG_ROOT="${CONFIG_ROOT}/${YANDEX_ENVIRONMENT}"

    # Make symlink for config file.
    ln -v -f -s "${ENV_CONFIG_ROOT}"/haproxy.cfg "${HAPROXY_CONFIG_ROOT}"/haproxy.cfg

    # Make symlink to LUA script that returns 401 to SLB.
    ln -f -v -s /etc/cauth-ldap-slave-haproxy-config/slb-response-401.lua /etc/haproxy/slb-response.lua
    printf "\nWARNING: HAproxy answers 401 to SLB by default. "
    printf "Use 'haproxy-slb-open' and 'haproxy-slb-close' utilities.\n\n"

    # Divert original haproxy logrotate file and put a symlink to ours
    dpkg-divert --package "$PKG" --add --rename --divert /etc/logrotate.d/haproxy.orig.disabled /etc/logrotate.d/haproxy

    # Make directory for logs.
    mkdir -p -v /var/log/haproxy/
    chown haproxy:haproxy /var/log/haproxy || true

    # Reload syslog-ng.
    /etc/init.d/syslog-ng reload || true
} # configure_environment()

do_configure() {
    if [ "${YANDEX_ENVIRONMENT}" = "production" ]; then
        configure_environment
    fi
    if [ "${YANDEX_ENVIRONMENT}" = "testing" ]; then
        echo "ERROR: Testing environment is not supported yet."
        # configure_environment
        exit 1
    fi
} # do_configure()


case "${1}" in
    configure)
    check_yandex_environment
    do_configure
    ;;

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

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

exit 0
