#!/bin/bash

set -e # Exit at first error

# Import release helpers
. senior-ci/common/release-helpers.sh

# Import notification helpers
. senior-ci/common/notification-helpers.sh

# Import Senior CI Extensions
. senior-ci/common/senior-ci-extensions-helpers.sh

echo -e "\e[33m[CI] Atenção: Este script será descontinuado em breve. Por favor, atualize o CI utilizando o Bastion. Caso não seja possível, entre em contato com o time de DevSecOps."

update_ci_vars() {
    if [ -z "$CQAT_URL" -o -z "$UPDATE_VARS" ]; then
        echo 'A variável SCI_VERSION não será atualizada na instância, pois as variáveis CQAT_URL e UPDATE_VARS não estão definidas'
    else
        echo 'Atualizando variável SCI_VERSION na instância'
        echo "SCI_VERSION = $VERSION_HYPHEN"

        DATA='{'
          DATA+='"query":"mutation($versionOfSeniorCI: String) {'
            DATA+='updateVersionVars(version: $versionOfSeniorCI) { success, reason }'
          DATA+='}",'
          DATA+='"variables":{ "versionOfSeniorCI":"'$VERSION_HYPHEN'" }'
        DATA+='}'

        curl "$CQAT_URL"/graphql \
            -X POST \
            -H 'Content-Type: application/json' \
            --data "$DATA"
    fi
}

SONAR_URL="http://sonar.senior.com.br"

getopts "rux" op;
case "$op" in
  r)  echo "[CI] Starting Self-Release"
      unshallow_repo

      get_next_version $2

      call_extension "before_release"

      create_release_branch

      call_extension "before_change_changelog"

      update_changelog

      call_extension "after_change_changelog"

      create_release_tag

      call_extension "after_release"

      notify_release_teams_channel
      ;;

  u)  echo "[CI] Atualizando variáveis do CI"
      unshallow_repo

      VERSION_HYPHEN=`git describe --tags --abbrev=0`

      update_ci_vars
      ;;
  x)  echo "[CI] Realizando análise e publicação dos resultados no SonarQube - $SONAR_URL"
      python3 senior-ci/common/validations/issues
      python3 senior-ci/ci/sonar_scanner.py
      ;;
esac
