#!/bin/bash

# Prerequisite:
# 1. Ask the front end colleagues for the new package(release.tar.gz) url, download it and put it some where in the repo machine, i.e., /root/tiup-opts/src/release.tar.gz
# 2. Put current script in /root/ path of TiEM machine and run it as root privilege, and leave the rest to the script.
	# Example command:
        # sh update_em_repo.sh /root/tiunimanager sprint9 /root/fe/release.tar.gz /home/tiup-opts 1.0.0-beta.10 amd

if [ $# -ne 6 ]
then
    echo "usage: $0 <tiem-folder> <branch> <front-end-package-path> <opts-folder> <version> <platform>"
    exit
fi

TIEM_FOLDER=$1
BRANCH=$2
FE_PACKAGE_PATH=$3
OPTS_FOLDER=$4
VERSION=$5
PLATFORM=$6
REPO_PATH=$(tiup mirror show)
FE_FOLDER=$(dirname $FE_PACKAGE_PATH)
FE_PACKAGE_BASE_NAME=$(basename $FE_PACKAGE_PATH)

echo "##### make TiEM binary started #####"
cd $TIEM_FOLDER
git pull
git checkout $BRANCH && git pull
make swag
make
echo "##### make TiEM binary finished #####"

echo "##### copy front end started #####"
cd $FE_FOLDER
tar zvxf $FE_PACKAGE_BASE_NAME
cd $OPTS_FOLDER/nginx-1.20.1/html
rm -rf assets/
rm -rf img/
rm -f index.html
cp -r $FE_FOLDER/dist/* .
cd $OPTS_FOLDER/nginx-1.20.1
rm -f nginx.tar.gz
tar -zcvf nginx.tar.gz *
echo "##### copy front end finished #####"

echo "##### copy cluster-server started #####"
cd $OPTS_FOLDER/cluster-server
rm -rf *
cp $TIEM_FOLDER/bin/cluster-server .
mkdir sqls
cp $TIEM_FOLDER/scripts/* sqls/
tar -zcvf cluster-server.tar.gz *
echo "##### copy cluster-server finished #####"

echo "##### copy openapi-server started #####"
cd $OPTS_FOLDER/openapi-server
rm -rf *
mkdir resource
cp $TIEM_FOLDER/resource/hostInfo_template.xlsx resource/
cp $TIEM_FOLDER/bin/openapi-server .
tar -zcvf openapi-server.tar.gz *
echo "##### copy openapi-server finished #####"

echo "##### copy file-server started #####"
cd $OPTS_FOLDER/file-server
rm -rf *
cp $TIEM_FOLDER/bin/file-server .
tar -zcvf file-server.tar.gz *
echo "##### copy file-server finished #####"

echo "##### generate publish script started #####"
cd $OPTS_FOLDER
rm -f tiup_publish_$VERSION.sh
cp tiup_publish_${PLATFORM}_template.sh tiup_publish_$VERSION.sh
sed -i "s/{version}/$VERSION/g" tiup_publish_$VERSION.sh
echo "##### generate publish script finished #####"

echo "##### cp tiup binary started #####"
cp $OPTS_FOLDER/tiup-linux-${PLATFORM}64/tiup-linux-${PLATFORM}64.tar.gz $REPO_PATH
echo "##### cp tiup binary finished #####"

echo "##### cp scripts and configs started #####"
cp $OPTS_FOLDER/src/install.sh $REPO_PATH
cp $OPTS_FOLDER/src/uninstall.sh $REPO_PATH
cp $OPTS_FOLDER/src/set_owner.sh $REPO_PATH
cp $OPTS_FOLDER/src/update.sh $REPO_PATH
# cp $OPTS_FOLDER/src/prepare_upgrade.sh $REPO_PATH
cp $OPTS_FOLDER/src/config_template.yaml $REPO_PATH
mkdir -p $REPO_PATH/tools
cp $OPTS_FOLDER/src/cfssl $REPO_PATH/tools
cp $OPTS_FOLDER/src/cfssljson $REPO_PATH/tools
mkdir -p $REPO_PATH/configs
cp $OPTS_FOLDER/src/ca-config.json $REPO_PATH/configs
cp $OPTS_FOLDER/src/ca-csr.json $REPO_PATH/configs
cp $OPTS_FOLDER/src/server.json $REPO_PATH/configs
echo "##### cp scripts and configs finished #####"

echo "##### publish online repo started #####"
cd $OPTS_FOLDER
sh tiup_publish_$VERSION.sh
echo "##### publish online repo finished, set /home/tiup-repo as mirror #####"
