#!/bin/bash -ex

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

java -version

declare -a arr=(\
'deploy-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/$i
 sed -i 's/@FUNCTION_NAME@/'$FUNCTION_NAME'/g' lambda/$i
 sed -i 's/@AWS_FUNCTION_NAME@/'$AWS_FUNCTION_NAME'/g' lambda/$i
 sed -i 's/@SLACK_CREDENTIAL_ID@/'$SLACK_CREDENTIAL_ID'/g' lambda/$i
 sed -i 's/@GITHUB_CREDENTIAL_ID@/'$GITHUB_CREDENTIAL_ID'/g' lambda/$i
 sed -i 's/@SLACK_ROOMS@/'$SLACK_ROOMS'/g' lambda/$i
 sed -i 's/@ALLOWED_NODE@/ny-deploy/g' lambda/$i
 sed -i 's/@GITHUB_WEBHOOK_TOKEN_ID@/'$GITHUB_WEBHOOK_TOKEN_ID'/g' lambda/$i
 sed -i 's/@REPO_LANGUAGE@/'$REPO_LANGUAGE'/g' lambda/$i
done

java -jar jenkins-cli.jar -s https://pipeline.theorchard.io/ -ssh -user ${CLI_USER} -i ${CLI_CREDENTIALS} create-job "${REPO_NAME}-deploy" < lambda/deploy-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/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}-sonar-scan" < lambda/sonar-scan-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/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/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/pipeline-trigger-builder.xml

set +x

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

set -x

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