#!/bin/bash

INSTANCE_ID=$2

# Default values.
GS_BUCKET="chromium-skia-gm"
N_COMMITS="50"
ADD_FLAGS=""

case "$INSTANCE_ID" in
  # prod instance
  prod)
	DATABASE_HOST="173.194.104.24"
	SKIACORRECTNESS_DATABASE_NAME="skiacorrectness"
	INGEST_DATABASE_NAME="skia"
  REDIRECT_URL="https://gold.skia.org/oauth2callback/"
  ADD_FLAGS="--backfill_tiles=2"
	;;

  # stage instance
  stage)
	DATABASE_HOST="173.194.254.28"
	SKIACORRECTNESS_DATABASE_NAME="skiacorrectness_stage"
	INGEST_DATABASE_NAME="skiacorr_ingest_stage"
  REDIRECT_URL="https://gold-staging.skia.org/oauth2callback/"
  ADD_FLAGS="--backfill_tiles=2"
  ;;

  # experimental android instance: uses the staging database server for now.
  android)
  DATABASE_HOST="173.194.254.28"
  SKIACORRECTNESS_DATABASE_NAME="skiacorrectness_android"
  INGEST_DATABASE_NAME="skiacorr_ingest_android"
  REDIRECT_URL="https://gold-android.skia.org/oauth2callback/"
  GS_BUCKET="skia-android-dm"
  N_COMMITS="200"
  ADD_FLAGS="--force_login --auth_whitelist=google.com"
  ;;

  # experimental blink instance: uses the staging database server for now.
  blink)
  DATABASE_HOST="173.194.254.28"
  SKIACORRECTNESS_DATABASE_NAME="skiacorrectness_blink"
  INGEST_DATABASE_NAME="skiacorr_ingest_blink"
  REDIRECT_URL="https://gold-blink.skia.org/oauth2callback/"
  ;;

  *)
    echo "Usage: $0 MESSAGE INSTANCE_ID"
    echo "     MESSAGE     is the message to be included in the release package."
    echo "     INSTANCE_ID is the id of the instance targeted by this package."
    exit 1
	;;
esac

# Builds and uploads a debian package for docserver.
APPNAME=skiacorrectness-conf-$2
DESCRIPTION="Create configuration packages for different instances."

DEPENDS=git

# Copy files into the right locations in ${ROOT}.
copy_release_files()
{
set -e

CORR_SED="s#<<REPLACE_DATABASE_HOST>>#$DATABASE_HOST#g"
CORR_SED="$CORR_SED;s#<<REPLACE_DATABASE_NAME>>#$SKIACORRECTNESS_DATABASE_NAME#g"
CORR_SED="$CORR_SED;s#<<REPLACE_REDIRECT_URL>>#$REDIRECT_URL#g"
CORR_SED="$CORR_SED;s#<<REPLACE_GS_BUCKET>>#$GS_BUCKET#g"
CORR_SED="$CORR_SED;s#<<REPLACE_N_COMMITS>>#$N_COMMITS#g"
CORR_SED="$CORR_SED;s#<<REPLACE_ADD_FLAGS>>#$ADD_FLAGS#g"

# Generate the init file for ingest and skiacorrectness.
sed "$CORR_SED" \
    ./sys/skiacorrectness_init.template > ./sys/skiacorrectness_init

sed "s/<<REPLACE_DATABASE_HOST>>/$DATABASE_HOST/g;s/<<REPLACE_DATABASE_NAME>>/$INGEST_DATABASE_NAME/g" \
    ./sys/ingest_init.template > ./sys/ingest_init

INSTALL="sudo install -D --verbose --backup=none --group=root --owner=root"
INSTALL_DIR="sudo install -d --verbose --backup=none --group=root --owner=root"

${INSTALL} --mode=644 -T ./sys/skiacorrectness_monit           ${ROOT}/etc/monit/conf.d/skiacorrectness
${INSTALL} --mode=755 -T ./sys/skiacorrectness_init            ${ROOT}/etc/init.d/skiacorrectness
${INSTALL} --mode=755 -T ./sys/ingest_init                     ${ROOT}/etc/init.d/ingest
${INSTALL_DIR} --mode=755                                      ${ROOT}/etc/skia
${INSTALL} --mode=644 -T ./sys/${INSTANCE_ID}-gold-ingest.toml ${ROOT}/etc/skiacorrectness/gold-ingest.toml
}

# Strip the second argument to keep this compatible with the shared build script.
set -- "$1"
source ../bash/release.sh
