#!/bin/bash

gitReset="git reset --hard"
echo $gitReset
$gitReset

gitClean="git clean -df"
echo $gitClean
$gitClean

gitPull="git pull"
echo $gitPull
$gitPull

./install-docker.sh

while read -r line; do
    set -f
    array=(${line//>>>>/ })
    
    if [[ "${array[0]}" == PORT ]]
    then
        port=${array[1]}
    elif [[ "${array[0]}" == RESTAURANT_URL ]]
    then
        restaurantUrl=${array[1]}
    elif [[ "${array[0]}" == SELF_API_URL ]]
    then
        selfApiUrl=${array[1]}
    elif [[ "${array[0]}" == GOOGLE_MAP_KEY ]]
    then
        googleMapKey=${array[1]}
    elif [[ "${array[0]}" == REPOSITORY_IMAGE ]]
    then
        repositoryImage=${array[1]}
    elif [[ "${array[0]}" == IMAGE_NAME ]]
    then
        branchImageName=${array[1]}
    elif [[ "${array[0]}" == VERSION_IMAGE ]]
    then
        versionName=${array[1]}
    elif [[ "${array[0]}" == CONTAINER_IMAGE_NAME ]]
    then
        containerImageName=${array[1]}
    elif [[ "${array[0]}" == LOCAL_STORAGE_KEY ]]
    then
        localStorageKey=${array[1]}
    elif [[ "${array[0]}" == REDIS_HOST ]]
    then
        redisHost=${array[1]}
    elif [[ "${array[0]}" == REDIS_PORT ]]
    then
        redisPort=${array[1]}
    elif [[ "${array[0]}" == ADDRESS_SERVER ]]
    then
        addressServer=${array[1]}
    elif [[ "${array[0]}" == CONTAINER_REDIS_IMAGE_NAME ]]
    then
        containerRedisImageName=${array[1]}
    elif [[ "${array[0]}" == CACHE_IMAGE_URL ]]
    then
        cacheImageUrl=${array[1]}
    elif [[ "${array[0]}" == ANDROID_STORE_URL ]]
    then
        androidStore=${array[1]}
    elif [[ "${array[0]}" == IOS_STORE_URL ]]
    then
        iosStore=${array[1]}
    elif [[ "${array[0]}" == PAYPAL_CLIENT_ID ]]
    then
        paypalClientId=${array[1]}
    elif [[ "${array[0]}" == PAYPAL_STORE_ID ]]
    then
        paypalStoreId=${array[1]}
    fi
done < config.txt

echo "Generate ecosystem.config.js file"
cp ecosystem.config.js.temp ecosystem.config.js

echo "Generate next.config.js file"
cp next.config.js.temp next.config.js
sed -i "s|CACHE_IMAGE_URL|$cacheImageUrl|g" next.config.js


echo "Generate .env file"
cp .env.temp .env
sed -i "s|=PORT_ENV|=$port|g" .env
sed -i "s|=RESTAURANT_URL_ENV|=$restaurantUrl|g" .env
sed -i "s|=SELF_API_URL_ENV|=$selfApiUrl|g" .env
sed -i "s|=GOOGLE_MAP_KEY_ENV|=$googleMapKey|g" .env
sed -i "s|=ADDRESS_SERVER_ENV|=$addressServer|g" .env
sed -i "s|=REDIS_HOST_ENV|=$redisHost|g" .env
sed -i "s|=REDIS_PORT_ENV|=$redisPort|g" .env
sed -i "s|=ANDROID_STORE_URL_ENV|=$androidStore|g" .env
sed -i "s|=IOS_STORE_URL_ENV|=$iosStore|g" .env
sed -i "s|=PAYPAL_CLIENT_ID_ENV|=$paypalClientId|g" .env
sed -i "s|=PAYPAL_STORE_ID_ENV|=$paypalStoreId|g" .env

copyDotEnvLocal="cp -R .env .env.local"
echo $copyDotEnvLocal
$copyDotEnvLocal


copyDotEnvProduction="cp -R .env .env.production"
echo $copyDotEnvProduction
$copyDotEnvProduction


copyDotEnvDevelopment="cp -R .env .env.development"
echo $copyDotEnvDevelopment
$copyDotEnvDevelopment

echo "Generate docker-compose.yml file"
cp docker-compose.yml.temp docker-compose.yml
sed -i "s|REPOSITORY_IMAGE_ENV|${repositoryImage}|g" docker-compose.yml
sed -i "s|BRANCH_IMAGE_NAME_ENV|${branchImageName}|g" docker-compose.yml
sed -i "s|VERSION_IMAGE_ENV|${versionName}|g" docker-compose.yml
sed -i "s|CONTAINER_IMAGE_NAME_ENV|${containerImageName}|g" docker-compose.yml
sed -i "s|CONTAINER_REDIS_IMAGE_NAME_ENV|${containerRedisImageName}|g" docker-compose.yml

setPermisionCmd="sudo chown -R $USER:$USER ."
echo $setPermisionCmd
# $setPermisionCmd


dockerBuildCmd="sudo docker build --no-cache -t $repositoryImage/$branchImageName:$versionName  ."
echo $dockerBuildCmd
$dockerBuildCmd

showPwd="pwd"
echo $showPwd
$showPwd

dockerComposeDown="sudo docker-compose down"
echo $dockerComposeDown
$dockerComposeDown

dockerComposeUp="sudo docker-compose up -d --build --force-recreate --renew-anon-volumes"
echo $dockerComposeUp
$dockerComposeUp

sudo docker container prune -f
sudo docker volume prune -f
sudo docker image prune -a -f
sudo docker network prune -f