#!/bin/bash
ghprbActualCommit=$(git rev-parse HEAD)
masterCommit=$(git rev-parse HEAD~1)
echo "Checking revision $ghprbActualCommit against $masterCommit"

changedFile="$(git diff-tree --no-commit-id --name-only -r ${ghprbActualCommit} ${masterCommit})"
echo "Changed files are $changedFile"

mv tools/bash/Dockerfile .
docker build -t db_deploy:$BUILD_TAG .

# inject liquibase command
liquibasecmd="liquibase:${type}"
rollbackcount=""
if [ $type = 'rollback' ]; then
  rollbackcount="-Dliquibase.rollbackCount=1"
fi

IFS='/' read -r warehousename remaining <<< "$changedFile"
IFS='/' read -r dummy dbname remaining <<< "$changedFile"

echo "Database is snowflake/${dbname}"

# adjust based on populated db.properties file location
mv config/${ENV}/snowflake/${dbname}/db.properties ${dbname}/build/

# inject AWS keys
tools/bash/inject_variables.sh $changedFile -v AWS_ACCESS_KEY_ID "$AWS_ACCESS_KEY_ID" -v AWS_SECRET_ACCESS_KEY "$AWS_SECRET_ACCESS_KEY"

# inject schema
UPPERENV=$(echo $ENV | tr '[:lower:]' '[:upper:]')
tools/bash/inject_variables.sh $changedFile -v SCHEMA_NAME "$UPPERENV"

# inject S3 bucket
if [ -z ${S3_BUCKET+x} ]; then
  S3_BUCKET=''
fi
tools/bash/inject_variables.sh $changedFile -v S3_BUCKET "$S3_BUCKET"

docker run -i -v ${WORKSPACE}:/src/db -w=/src/db db_deploy:$BUILD_TAG mvn -f ${dbname}/build/pom.xml initialize ${liquibasecmd} -DchangeLogFile=/src/db/$changedFile ${rollbackcount}

docker rmi -f db_deploy:$BUILD_TAG
