#!/bin/bash

: ${CONFIG_DOWNLOAD_DIR:=}
: ${OPENSHIFT_ANSIBLE_IMAGE:=docker.io/openshift/origin-ansible:latest}

usage () {
    echo "Usage: $0 [options]"
    echo ""
    echo "Options:"
    echo "  -i, --image                the openshift-ansible image tag to use. Default to"
    echo "                             docker.io/openshift/origin-ansible:latest"
    echo "  -d, --config-download-dir  the path to the config-download directory for openshift"
    echo "  -h, --help                 print this help and exit"
}

OPTS=`getopt -o hd:i: --long help,config-download-dir:,image: -- "$@"`
eval set -- "$OPTS"

while true; do
  case "$1" in
    -h | --help)
      usage; exit ;;
    -d | --config-download-dir)
      shift
      export CONFIG_DOWNLOAD_DIR=$1; shift ;;
    -i | --image)
      shift
      export OPENSHIFT_ANSIBLE_IMAGE=$1; shift ;;
    --) shift ; break ;;
    * ) break ;;
  esac
done

if [[ -z $CONFIG_DOWNLOAD_DIR ]]; then
  echo "Missing required --config-download-dir option"
  usage
  exit
fi

ANSIBLE_OPTS="-e @${CONFIG_DOWNLOAD_DIR}/openshift/global_vars.yml"
if [[ -f ${CONFIG_DOWNLOAD_DIR}/openshift/global_gluster_vars.yml ]]; then
  ANSIBLE_OPTS="${ANSIBLE_OPTS} -e @${CONFIG_DOWNLOAD_DIR}/openshift/global_gluster_vars.yml"
fi

docker run \
        --net=host \
        -u `id -u` \
        -v ${CONFIG_DOWNLOAD_DIR}:${CONFIG_DOWNLOAD_DIR} \
        -w ${CONFIG_DOWNLOAD_DIR} \
        -e ANSIBLE_HOST_KEY_CHECKING=False \
        -e ANSIBLE_CONFIG=${CONFIG_DOWNLOAD_DIR}/ansible.cfg \
        -e INVENTORY_DIR=${CONFIG_DOWNLOAD_DIR}/openshift/inventory \
        -e PLAYBOOK_FILE=${CONFIG_DOWNLOAD_DIR}/openshift/playbook.yml \
        -e OPTS="${ANSIBLE_OPTS}" \
        -t ${OPENSHIFT_ANSIBLE_IMAGE}
