#!/bin/bash
set -e

REPO_TYPE=testing # Тип репозитория, необходимо заменить на stable, prerelease или testing, заменяется в job-е Jenkins-а
HOST=downloads.artix.su

CURRENT_FILE_NAME="docker-compose.yaml"
NEW_FILE_NAME="${CURRENT_FILE_NAME}_$(date +%Y_%M_%d-%s)"
URL="http://${HOST}/static/downloads/install_scripts/${REPO_TYPE}/puppet_env"
sudo curl -L "${URL}/${CURRENT_FILE_NAME}" -o ./$NEW_FILE_NAME

log() {
    echo "`date '+%Y-%m-%d %H:%M:%S'` $1: $2"
}

if cmp --silent ./$CURRENT_FILE_NAME ./$NEW_FILE_NAME; then
    log INFO  "Current version of file is some with downloaded file"
    rm $NEW_FILE_NAME
else
    if grep -q 'postgres:9.6.13-local' docker-compose.yaml; then
        sudo curl -L "${URL}/migrate_from_6_to_7.sh" -o ./migrate_from_6_to_7.sh
        log INFO "Migrate postgres from 9.6.13-local to postgres:15.3-local"
        chmod +x ./migrate_from_6_to_7.sh && ./migrate_from_6_to_7.sh
        log INFO "Success migrate"
    fi
    log INFO  "Copy old version of docker-compose for backup"
    mv $CURRENT_FILE_NAME ${CURRENT_FILE_NAME}_$(date +%Y_%M_%d-%s)_backup

    log INFO "Copy new file new $NEW_FILE_NAME old $CURRENT_FILE_NAME"
    mv $NEW_FILE_NAME ${CURRENT_FILE_NAME}

    docker compose up -d
fi