#!/bin/bash

set -e

# Optionally take an environment file on the command-line for testing.
INV=${1:?"Inventory file must be specified"}
PLAYBOOK=${2:?"Playbook must be specified"}
LOG_FILE=${3:-"/dev/null"}
ENV_FILE=${4:-"/etc/atl"}

export PATH=/usr/local/bin:$PATH
export PIP_DEFAULT_TIMEOUT=60

# Set the environment with default exports
set -a
source $ENV_FILE
set +a

# Use Ansible from virtualenv if provided
pipenv run \
    ansible-playbook -v \
        $ATL_DEPLOYMENT_REPOSITORY_CUSTOM_PARAMS \
        -e "ansible_python_interpreter=$(pipenv --venv)/bin/python" \
        -e "${PLAYBOOK_INVOCATION_EXTRA_PARAMS}" \
        -i $INV \
        $PLAYBOOK \
        2>&1 | tee --append $LOG_FILE
