#!/bin/bash

set -e -u

absolute_path() {
  (cd $1 && pwd)
}

scripts_path=$(absolute_path `dirname $0`)

CF_NETWORKING_DIR=${CF_NETWORKING_DIR:-$(absolute_path $scripts_path/..)}
DIEGO_RELEASE_DIR=${DIEGO_RELEASE_DIR:-$(absolute_path $CF_NETWORKING_DIR/../diego-release)}
CF_RELEASE_DIR=${CF_RELEASE_DIR:-$(absolute_path $CF_NETWORKING_DIR/../cf-release)}

DIEGO_MANIFESTS_DIR=$DIEGO_RELEASE_DIR/bosh-lite/deployments
CF_NETWORKING_MANIFESTS_DIR=$CF_NETWORKING_DIR/bosh-lite/deployments

mkdir -p ${CF_NETWORKING_MANIFESTS_DIR}

echo running vanilla cf-release manifest generation
${CF_RELEASE_DIR}/scripts/generate-bosh-lite-dev-manifest \
  ${CF_NETWORKING_DIR}/manifest-generation/stubs/bosh-lite-cf.yml \
  ${CF_NETWORKING_DIR}/manifest-generation/stubs/cf-overrides.yml

echo adding cf-networking to cf-release manifest
spiff merge ${CF_NETWORKING_DIR}/manifest-generation/cf-networking-bosh-lite-template.yml \
  ${CF_RELEASE_DIR}/bosh-lite/deployments/cf.yml \
    > ${CF_NETWORKING_DIR}/bosh-lite/deployments/cf_networking.yml

bosh deployment ${CF_NETWORKING_DIR}/bosh-lite/deployments/cf_networking.yml

echo generate vanilla diego deployment manifest
pushd ${DIEGO_RELEASE_DIR}
  ./scripts/generate-bosh-lite-manifests \
    -n ${CF_NETWORKING_DIR}/manifest-generation/stubs/diego/instance-count-overrides.yml
popd

mv ${DIEGO_MANIFESTS_DIR}/diego.yml ${CF_NETWORKING_MANIFESTS_DIR}/diego.yml

echo generate diego with overlay deployment manifest
pushd ${DIEGO_RELEASE_DIR}
  ./scripts/generate-bosh-lite-manifests \
    -n ${CF_NETWORKING_DIR}/manifest-generation/stubs/diego/instance-count-overrides.yml \
    -N ${CF_NETWORKING_DIR}/manifest-generation/stubs/bosh-lite-diego-cf-networking.yml
popd

mv ${DIEGO_MANIFESTS_DIR}/diego.yml ${CF_NETWORKING_MANIFESTS_DIR}/diego_cf_networking.yml

echo "deployment manifests generated. you need to do TWO deploys"
echo "bosh deploy ${CF_NETWORKING_DIR}/bosh-lite/deployments/cf_networking.yml"
echo "bosh deploy ${CF_NETWORKING_DIR}/bosh-lite/deployments/diego_cf_networking.yml"
