#!/bin/bash -ex

curl https://pipeline.theorchard.io/jnlpJars/jenkins-cli.jar --output jenkins-cli.jar

java -version

declare -a arr=(\
'container-deploy-builder.xml' \
'docker-to-ecr-builder.xml' \
'unit-lint-builder.xml' \
'sonar-scan-builder.xml' \
'integration-tests-builder.xml' \
'pipeline-builder.xml' \
'pipeline-trigger-builder.xml' \
'pull-request-builder.xml' \
)
for i in "${arr[@]}"
do
 sed -i 's/@REPO_NAME@/'$REPO_NAME'/g' lambda-containers/$i
 sed -i 's/@FUNCTION_NAME@/'$FUNCTION_NAME'/g' lambda-containers/$i
 sed -i 's/@AWS_FUNCTION_NAME@/'$AWS_FUNCTION_NAME'/g' lambda-containers/$i
 sed -i 's/@SLACK_CREDENTIAL_ID@/'$SLACK_CREDENTIAL_ID'/g' lambda-containers/$i
 sed -i 's/@GITHUB_CREDENTIAL_ID@/'$GITHUB_CREDENTIAL_ID'/g' lambda-containers/$i
 sed -i 's/@AWS_ACCOUNT_ID@/'$AWS_ACCOUNT_ID'/g' lambda-containers/$i
 sed -i 's/@ECR_CREDENTIAL_ID@/'$ECR_CREDENTIAL_ID'/g' lambda-containers/$i
 sed -i 's/@SLACK_ROOMS@/'$SLACK_ROOMS'/g' lambda-containers/$i
 sed -i 's/@ALLOWED_NODE@/ny-deploy/g' lambda-containers/$i
 sed -i 's/@GITHUB_WEBHOOK_TOKEN_ID@/'$GITHUB_WEBHOOK_TOKEN_ID'/g' lambda-containers/$i
 sed -i 's/@REPO_LANGUAGE@/'$REPO_LANGUAGE'/g' lambda-containers/$i
done

java -jar jenkins-cli.jar -s https://pipeline.theorchard.io/ -ssh -user ${CLI_USER} -i ${CLI_CREDENTIALS} create-job "${REPO_NAME}-container-deploy" < lambda-containers/container-deploy-builder.xml
java -jar jenkins-cli.jar -s https://pipeline.theorchard.io/ -ssh -user ${CLI_USER} -i ${CLI_CREDENTIALS} create-job "${REPO_NAME}-docker-to-ecr" < lambda-containers/docker-to-ecr-builder.xml
java -jar jenkins-cli.jar -s https://pipeline.theorchard.io/ -ssh -user ${CLI_USER} -i ${CLI_CREDENTIALS} create-job "${REPO_NAME}-unit-lint" < lambda-containers/unit-lint-builder.xml
java -jar jenkins-cli.jar -s https://pipeline.theorchard.io/ -ssh -user ${CLI_USER} -i ${CLI_CREDENTIALS} create-job "${REPO_NAME}-integration-tests" < lambda-containers/integration-tests-builder.xml
java -jar jenkins-cli.jar -s https://pipeline.theorchard.io/ -ssh -user ${CLI_USER} -i ${CLI_CREDENTIALS} create-job "${REPO_NAME}-pipeline" < lambda-containers/pipeline-builder.xml
java -jar jenkins-cli.jar -s https://pipeline.theorchard.io/ -ssh -user ${CLI_USER} -i ${CLI_CREDENTIALS} create-job "${REPO_NAME}-pipeline-trigger" < lambda-containers/pipeline-trigger-builder.xml

for i in $(java -jar jenkins-cli.jar -s https://pipeline.theorchard.io/ -ssh -user ${CLI_USER} -i ${CLI_CREDENTIALS} list-jobs); do
  if [ "${i}" = "${REPO_NAME}-pull-request" ]; then
    echo 'Pull request job for this repository already exists!'
  elif [ "${i}" = "${REPO_NAME}-sonar-scan" ]; then
    echo 'Sonar scan job for this repository already exists!'
    exit 0
  fi
done

java -jar jenkins-cli.jar -s https://pipeline.theorchard.io/ -ssh -user ${CLI_USER} -i ${CLI_CREDENTIALS} create-job "${REPO_NAME}-pull-request" < lambda-containers/pull-request-builder.xml
java -jar jenkins-cli.jar -s https://pipeline.theorchard.io/ -ssh -user ${CLI_USER} -i ${CLI_CREDENTIALS} create-job "${REPO_NAME}-sonar-scan" < lambda-containers/sonar-scan-builder.xml
