#!/usr/bin/env bash

# {{ ansible_managed }}

source {{ discovery_home }}/discovery_env
COMMAND=$1

case $COMMAND in
    start)
        {% set discovery_venv_bin = discovery_venv_dir + "/bin" %}

        {{ supervisor_venv_bin }}/supervisord --configuration {{ supervisor_cfg }}

	# Needed to run bower as root. See explaination around 'discovery_user=root'
	echo '{ "allow_root": true }' > /root/.bowerrc

        cd /edx/app/edx_ansible/edx_ansible/docker/plays
        /edx/app/edx_ansible/venvs/edx_ansible/bin/ansible-playbook discovery.yml -c local -i '127.0.0.1,' \
            -t 'install:app-requirements,assets:gather,devstack,migrate' \
            --extra-vars="migrate_db=yes" \
            --extra-vars="@/ansible_overrides.yml" \
	    --extra-vars="discovery_user=root"  # Needed when sharing the volume with the host machine because node/bower drops
						# everything in the code directory by default.  So we get issues with permissions
						# on folders owned by the developer.


	# Need to start supervisord and nginx manually because systemd is hard to run on docker
	# http://developers.redhat.com/blog/2014/05/05/running-systemd-within-docker-container/
	# Both daemon by default
	nginx
	/edx/app/supervisor/venvs/supervisor/bin/supervisord --configuration /edx/app/supervisor/supervisord.conf

        # Docker requires an active foreground task. Tail the logs to appease Docker and
        # provide useful output for development.
        cd {{ supervisor_log_dir }}
        tail -f {{ discovery_service_name }}-stderr.log -f {{ discovery_service_name }}-stdout.log
        ;;
    open)
        cd {{ discovery_code_dir }}
        . {{ discovery_venv_bin }}/activate
        /bin/bash
        ;;
esac
