#!/usr/bin/env bash
set -e

if [ -z "{ETHERPAD_ADMIN_PASSWORD}" ]; then
	echo >&2 'Error : missing required ${ETHERPAD_ADMIN_PASSWORD} environment variable, exiting.'
	exit 1
fi
if [ -z "{ETHERPAD_DB_NAME}" ]; then
	echo >&2 'Error : missing required ${ETHERPAD_DB_NAME} environment variable, exiting.'
	exit 1
fi
if [ -z "{ETHERPAD_DB_USER}" ]; then
	echo >&2 'Error : missing required ${ETHERPAD_DB_USER} environment variable, exiting.'
	exit 1
fi
if [ -z "{ETHERPAD_DB_PASSWORD}" ]; then
	echo >&2 'Error : missing required ${ETHERPAD_DB_PASSWORD} environment variable, exiting.'
	exit 1
fi
if [ -z "{ETHERPAD_DB_HOST}" ]; then
	echo >&2 'Error : missing required ${ETHERPAD_DB_HOST} environment variable, exiting.'
	exit 1
fi

while ! mysqladmin ping -h"$ETHERPAD_DB_HOST"; do
    sleep 1
done

# Check if database already exists
RESULT=`mysql -u${ETHERPAD_DB_USER} -p${ETHERPAD_DB_PASSWORD} \
	-h${ETHERPAD_DB_HOST} --skip-column-names \
	-e "SHOW DATABASES LIKE '${ETHERPAD_DB_NAME}'"`

if [ "$RESULT" != $ETHERPAD_DB_NAME ]; then
	# mysql database does not exist, create it
	echo "Creating database ${ETHERPAD_DB_NAME}"

	mysql -u${ETHERPAD_DB_USER} -p${ETHERPAD_DB_PASSWORD} -h${ETHERPAD_DB_HOST} \
	      -e "create database ${ETHERPAD_DB_NAME}"
fi

exec "$@"