#!/bin/bash -ex

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

java -version

declare -a arr=(\
'pull-request-builder.xml' \
'sonar-scan-builder.xml' \
'e2e-cucumber-tests-builder.xml' \
'integration-tests-builder.xml' \
'unit-lint-builder.xml' \
'docker-to-ecr-builder.xml' \
'docker-fargate-deploy-builder.xml' \
'pipeline-builder.xml' \
)
for i in "${arr[@]}"
do
  sed -i 's/@SERVICE@/'$SERVICE'/g' ows/$i
  sed -i 's/@SERVICE_UNDERSCORE@/'${SERVICE/-/_}'/g' ows/$i
  sed -i 's/@GITHUB_CREDENTIAL_ID@/'$GITHUB_CREDENTIAL_ID'/g' ows/$i
  sed -i 's/@AWS_ACCOUNT_ID@/'$AWS_ACCOUNT_ID'/g' ows/$i
  sed -i 's/@ECR_CREDENTIAL_ID@/'$ECR_CREDENTIAL_ID'/g' ows/$i
  sed -i 's/@SLACK_CREDENTIAL_ID@/'$SLACK_CREDENTIAL_ID'/g' ows/$i
  sed -i 's/@SLACK_ROOMS@/'$SLACK_ROOMS'/g' ows/$i
  sed -i 's/@ALLOWED_NODE@/ny-deploy/g' ows/$i
  sed -i 's/@CUKES_CONFIG_AWS_CREDENTIAL_ID@/'$CUKES_CONFIG_AWS_CREDENTIAL_ID'/g' ows/$i
  sed -i 's/@GITHUB_WEBHOOK_TOKEN_ID@/'$GITHUB_WEBHOOK_TOKEN_ID'/g' ows/$i
  sed -i 's/@SERVICE_LANGUAGE@/'$SERVICE_LANGUAGE'/g' ows/$i
done

java -jar jenkins-cli.jar -s https://pipeline.theorchard.io/ -ssh -user ${CLI_USER} -i ${CLI_CREDENTIALS} create-job ows-${SERVICE}-pull-request < ows/pull-request-builder.xml
java -jar jenkins-cli.jar -s https://pipeline.theorchard.io/ -ssh -user ${CLI_USER} -i ${CLI_CREDENTIALS} create-job ows-${SERVICE}-e2e-cucumber-tests < ows/e2e-cucumber-tests-builder.xml
java -jar jenkins-cli.jar -s https://pipeline.theorchard.io/ -ssh -user ${CLI_USER} -i ${CLI_CREDENTIALS} create-job ows-${SERVICE}-integration-tests < ows/integration-tests-builder.xml
java -jar jenkins-cli.jar -s https://pipeline.theorchard.io/ -ssh -user ${CLI_USER} -i ${CLI_CREDENTIALS} create-job ows-${SERVICE}-unit-lint < ows/unit-lint-builder.xml
java -jar jenkins-cli.jar -s https://pipeline.theorchard.io/ -ssh -user ${CLI_USER} -i ${CLI_CREDENTIALS} create-job ows-${SERVICE}-docker-to-ecr < ows/docker-to-ecr-builder.xml
java -jar jenkins-cli.jar -s https://pipeline.theorchard.io/ -ssh -user ${CLI_USER} -i ${CLI_CREDENTIALS} create-job ows-${SERVICE}-docker-fargate-deploy < ows/docker-fargate-deploy-builder.xml
java -jar jenkins-cli.jar -s https://pipeline.theorchard.io/ -ssh -user ${CLI_USER} -i ${CLI_CREDENTIALS} create-job ows-${SERVICE}-pipeline < ows/pipeline-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" == "ows-${SERVICE}-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 "ows-${SERVICE}-sonar-scan" < ows/sonar-scan-builder.xml
