#!/bin/bash

echo 'export LC_ALL="en_US.UTF-8"' >> /root/.bashrc
echo "export MPFS_PG_NUM_COUNT=$MPFS_PG_NUM_COUNT" >> /root/.mpfs_pg_env

useradd -m $TEAMCITY_USER_NAME

mkdir -p /home/$TEAMCITY_USER_NAME

# process teplated files
find /etc/yandex/templates/ -type f -exec sed -i 's/$TEAMCITY_USER_NAME/'$TEAMCITY_USER_NAME'/g' {} \;
cp -R /etc/yandex/templates/. /home/$TEAMCITY_USER_NAME

# Setup agent params
cat > /opt/buildagent/conf/buildAgent.properties << EOF
serverUrl=${TEAMCITY_URL:-https://teamcity.yandex-team.ru}
name=${QLOUD_PROJECT}.${QLOUD_APPLICATION}.${QLOUD_ENVIRONMENT}.${QLOUD_INSTANCE}

authorizationToken=$(echo -n "${QLOUD_PROJECT}.${QLOUD_APPLICATION}.${QLOUD_ENVIRONMENT}.${QLOUD_INSTANCE}" | md5sum | awk '{print $1}')
EOF

chown -R $TEAMCITY_USER_NAME:$TEAMCITY_USER_NAME \
         /home/$TEAMCITY_USER_NAME \
         /etc/yandex/mpfs/keys \
         /var/log/mpfs \
         /var/log/mpfs-api-admin \
         /var/lib/mpfs \
         /etc/yandex/teamcity \
         /opt/buildagent/

chmod 644 /etc/cron.d/init-pg

# import gpg keys needed for debsign
for gpg_key in /etc/yandex/teamcity/gpg/*; do
    sudo -u $TEAMCITY_USER_NAME gpg --import $gpg_key
done

# Stop default pg process
service postgresql stop

# Prepare directories for pg instances
for ((i=0; i < $MPFS_PG_NUM_COUNT; i++)); do
    mkdir -p /data/pg/$i
    mkdir -p /var/log/postgresql/$i

    chown postgres:postgres /data/pg/$i /var/log/postgresql/$i

    sudo -u postgres /usr/lib/postgresql/9.6/bin/initdb --encoding=UTF8 \
        --locale=en_US.UTF-8 \
        --lc-collate=C \
        --lc-ctype=C \
        -D /data/pg/$i
done

if [ $MPFS_PG_NUM_COUNT -eq 0 ]; then
    rm /etc/yandex/supervisor/conf.d/pg.conf
else
    # Prepare migrations to apply them after pg processes started
    chmod -R 775 /etc/yandex/mpfs/pg
    chgrp -R $TEAMCITY_USER_NAME /etc/yandex/mpfs/pg
    cd /etc/yandex/mpfs/pg
    for dbname in diskdb disk_commondb; do
        sudo -u robot-disk-mpfs svn co svn+ssh://arcadia-ro.yandex.ru/arc/trunk/arcadia/disk/admin/salt/pg/salt/components/pg-code/${dbname} ${dbname}
    done

    chmod +x /etc/yandex/mpfs/pg/init.sh
fi

sudo su - $TEAMCITY_USER_NAME -c 'svn export svn+ssh://arcadia.yandex.ru/arc/trunk/arcadia/ya /tmp/ya'

echo "prestart hook executer successfully"
