#!/bin/sh

usage() {
    cat <<EOF
usage: ${0##*/} [command]
    -h          Print this help message.
    -a          Run API on host 0.0.0.0:8000.
    -i          Install dependencies.
    -d          Run docker-compose up.
    -c          Configure databases.
EOF
    exit 1
}

RUN=
while getopts "hadic" OPTION; do
    case $OPTION in
    a) RUN=api ;;
    d) RUN=docker ;;
    i) RUN=install ;;
    c) RUN=configure  ;;
    *) usage ;;
    esac
done

if [ "$RUN" = 'install' ]; then
    poetry install
elif [ "$RUN" = 'api' ]; then
    poetry run uvicorn bsition.api.main:app --host 0.0.0.0
elif [ "$RUN" = 'configure' ]; then
    poetry run configure
else
    [ ! -d data ] && mkdir data
    [ ! -d data/postgres ] && mkdir data/postgres
    [ ! -d data/mongo ] && mkdir data/mongo
    [ ! -d data/elasticsearch ] && mkdir data/elasticsearch
    docker-compose up
fi