#!/bin/bash

NUM_RUNNERS=20
NUM_BUILDERS=3
RUNNER_PREFIX="$(hostname)-runner-"
BUILDER_PREFIX="$(hostname)-builder-"

SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
export VAGRANT_HOME=${SCRIPT_DIR}

param="up"
if [[ $# -ge 1 ]]; then
    param=$1
    if [[ "${param}" != "destroy" ]] && [[ "${param}" != "shutdown" ]]; then
        echo "Only valid parameters are 'destroy' and 'shutdown' to destroy all VMs or shutdown all VMs"
        exit 1
    fi
fi


for (( i=1; i<=NUM_RUNNERS; i++ )); do
    sed -i "s/  config.vm.define.*/  config.vm.define \"${RUNNER_PREFIX}${i}\"/g" Vagrantfile-runner
    sed -i "s/  config.vm.hostname.*/  config.vm.hostname = \"${RUNNER_PREFIX}${i}\"/g" Vagrantfile-runner
    if [[ "${param}" == "destroy" ]]; then
        VAGRANT_VAGRANTFILE=Vagrantfile-runner vagrant destroy -f
    elif [[ "${param}" == "shutdown" ]]; then
        VAGRANT_VAGRANTFILE=Vagrantfile-runner vagrant halt -f
    else
        VAGRANT_VAGRANTFILE=Vagrantfile-runner vagrant up --provider=libvirt
    fi
done

for (( i=1; i<=NUM_BUILDERS; i++ )); do
    sed -i "s/  config.vm.define.*/  config.vm.define \"${BUILDER_PREFIX}${i}\"/g" Vagrantfile-builder
    sed -i "s/  config.vm.hostname.*/  config.vm.hostname = \"${BUILDER_PREFIX}${i}\"/g" Vagrantfile-builder
    if [[ "${param}" == "destroy" ]]; then
        VAGRANT_VAGRANTFILE=Vagrantfile-builder vagrant destroy -f
    elif [[ "${param}" == "shutdown" ]]; then
        VAGRANT_VAGRANTFILE=Vagrantfile-builder vagrant halt -f
    else
        VAGRANT_VAGRANTFILE=Vagrantfile-builder vagrant up --provider=libvirt
    fi
done
