#!/usr/bin/env bash

newPerformanceYear=$(($1))
previousPerformanceYear=$(($newPerformanceYear-1))

Red='\033[0;31m'
Green='\033[0;32m'

DIR="measures/${newPerformanceYear}/"
if [ -d "$DIR" ]; then
  echo -e "${Red}/measures/${newPerformanceYear}/ already exists. Canceling initialization."
else
  echo -e "Compiling Typescript..."
  tsc -p .

  echo -e "Cloning measures-data and schema..."
  cp -r measures/$previousPerformanceYear measures/$newPerformanceYear

  echo -e "Cloning mvp data..."
  cp -r mvp/$previousPerformanceYear mvp/$newPerformanceYear

  echo -e "Incrementing eMeasureIds and resetting annual fields..."
  node dist/scripts/measures/initialize-measures-data.js $newPerformanceYear

  echo -e "Updating the performance year in the measures-schema and mvp-schema..."
  sed -i '' -e "s/$previousPerformanceYear/$newPerformanceYear/" measures/$newPerformanceYear/measures-schema.yaml
  sed -i '' -e "s/$previousPerformanceYear/$newPerformanceYear/" mvp/$newPerformanceYear/mvp-schema.yaml

  echo -e "Updating the max performance year for the shell scripts..."
  sed -i '' -e "s/maxPerformanceYear=$previousPerformanceYear/maxPerformanceYear=$newPerformanceYear/" scripts/measures/update-measures
  sed -i '' -e "s/maxPerformanceYear=$previousPerformanceYear/maxPerformanceYear=$newPerformanceYear/" scripts/measures/export-measures
  sed -i '' -e "s/maxPerformanceYear=$previousPerformanceYear/maxPerformanceYear=$newPerformanceYear/" scripts/measures/measures-json-to-csv
  sed -i '' -e "s/maxPerformanceYear=$previousPerformanceYear/maxPerformanceYear=$newPerformanceYear/" scripts/mvp/build-mvp
  sed -i '' -e "s/maxPerformanceYear=$previousPerformanceYear/maxPerformanceYear=$newPerformanceYear/" scripts/benchmarks/build-benchmarks

  echo -e "Adding new performance year to validPerformanceYears in constants.ts..."
  sed -i '' -e "s/validPerformanceYears: \[\([0-9, ]*\)\]/validPerformanceYears: [\1, $newPerformanceYear]/" constants.ts

  echo -e "Cloning yearly scripts and test files..."
  cp -r scripts/measures/$previousPerformanceYear scripts/measures/$newPerformanceYear
  cp -r test/measures/$previousPerformanceYear test/measures/$newPerformanceYear
  cp -r scripts/mvp/$previousPerformanceYear scripts/mvp/$newPerformanceYear

  echo -e "Updating the performanceYear for the spec files..."
  for filename in scripts/measures/$newPerformanceYear/*.spec.ts; do
      sed -i '' -e "s/performanceYear = $previousPerformanceYear/performanceYear = $newPerformanceYear/" $filename
  done
  
  echo -e "Creating updates directory and initializing changes.meta.json as an empty array..."
  mkdir updates/measures/$newPerformanceYear
  echo "[]" > updates/measures/$newPerformanceYear/changes.meta.json

  echo -e "Creating the util directory (for input data) and the stratum files..."
  mkdir util/measures/$newPerformanceYear
  cp util/measures/$previousPerformanceYear/qcdr-strata.csv util/measures/$newPerformanceYear/
  cp util/measures/$previousPerformanceYear/quality-strata.csv util/measures/$newPerformanceYear/

  echo -e "Compiling Typescript with new files..."
  tsc -p .

  echo -e "${Green}Measures year ${newPerformanceYear} initialized."
fi