#!/bin/sh

# create folder to pack all
echo "Starting build process..."
mkdir build

# build janken tool and move
cd tools/janken
echo "Starting janken tool build..."
npm install
npm run build
cd ../../
mv tools/janken/tool build
echo "Finished janken tool build..."

# build client and move
cd main-web/client
echo "Starting client build..."
npm install
npm run build
cd ../../
mv main-web/client/client build/client
echo "Finished client build..."

# build admin and move
cd main-web/admin
echo "Starting admin ui build..."
npm install
npm run build
cd ../../
mv main-web/admin/build build/admin
echo "Finished admin ui build..."

# build server and move
cd main-web/server
echo "Starting server build..."
npm install
npm run build
cd ../../
cd build/
echo "Starting retrieval of db credentials..."
export catherine_db_endpoint=$(aws --region=ap-northeast-1 ssm get-parameter --name "db-endpoint" --with-decryption --output text --query Parameter.Value)
export catherine_db_user=$(aws --region=ap-northeast-1 ssm get-parameter --name "db-username" --with-decryption --output text --query Parameter.Value)
export catherine_db_pass=$(aws --region=ap-northeast-1 ssm get-parameter --name "db-password" --with-decryption --output text --query Parameter.Value)
echo "Saving db credentials to .env file..."
cat > .env <<EOL
DB_ENDPOINT=${catherine_db_endpoint}
DB_USER=${catherine_db_user}
DB_PASS=${catherine_db_pass}
EOL
cd ../
cp main-web/server/package.json build/
cp main-web/server/tsconfig.json build/
cp main-web/server/tslint.json build/
mv main-web/server/build build/server
echo "Finished server build..."
