#!/bin/bash
#
# 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

# Show messages
say() {
    echo -e " * $1"
}

link_logstore_configs() {
    for log_type in "$@";
    do
        rm -f /etc/yandex/passport-logstoreagent/instances/$log_type.json || true

        env_name=$(cat "/etc/yandex/environment.type")
        if [ -f /etc/yandex/environment.name ]; then
            env_name="$env_name"."$(cat /etc/yandex/environment.name)"
        fi

        config_file=/etc/fastcgi2/logstore/"$log_type"-"$env_name".json

        if [ -f "$config_file" ]; then
            echo "Using logstore config: $config_file"
            cp "$config_file" "/etc/yandex/passport-logstoreagent/instances/$log_type.json"
        else
            echo "No logstore config: $config_file, skipping..."
        fi
    done
}

case "$1" in
    configure)
        # At upgrade in $2 var contains previous version
        # So, if $2 var is empty, its first installation
        if [ -z "${2}" ]; then
            yav-deploy --force --skip-post-update \
                -c /etc/yandex/yav-deploy/pkg/passport-sezam-front-fastcgi-config/ \
                || true
        else
            yav-deploy --force \
                -c /etc/yandex/yav-deploy/pkg/passport-sezam-front-fastcgi-config/ \
                || true
        fi

        # Clean up destinations
        rm -rf /etc/fastcgi2/available/blackbox.daemon

        # Cleanup logstore
        rm -f /etc/yandex/passport-logstoreagent/instances/blackbox*.json || true

        # Generate configs
        HOSTNAME=$(hostname -f)
        ln --symbolic /etc/fastcgi2/conf/prebuilt/$HOSTNAME /etc/fastcgi2/available/blackbox.daemon

        link_logstore_configs blackbox

        echo "Trying to check logstoreagent configs..."
        sudo -u www-data /usr/sbin/logstoreagent_config_checker
        echo "Trying to check logstoreagent configs...OK"
        service yandex-passport-logstoreagent restart

        # Prepare user:group
        CURRENT_ENV_TYPE=`cat "/etc/yandex/environment.type"`
        if [[ $CURRENT_ENV_TYPE == "development" ]]; then
            groupadd blackbox || true
            useradd -g blackbox -d /home/blackbox blackbox || true
        fi

        # Etc
        chown -R blackbox:blackbox /usr/local/www/passport
        chown -R blackbox:blackbox /var/cache/yandex/passport-blackbox

        # TODO: simplify logs dir after PASSPADMIN-7563
        chown blackbox:blackbox /opt/sezam-logs
        if [ -f /opt/sezam-logs/blackbox-access.log ]; then
            chown blackbox:blackbox /opt/sezam-logs/blackbox-*
        fi

        if [ -f /opt/sezam-logs/err.blackbox.log ]; then
            chown blackbox:blackbox /opt/sezam-logs/err.blackbox.log
        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
