#!/bin/bash

case "$1" in
    test-e2e)
        npm run test-e2e
        ;;
    test-unit)
        npm run test-unit
        ;;
    start)
        npm start
        ;;
    debug)
        type docker-compose >/dev/null 2>&1 || { echo >&2 "docker-compose is required but it's not installed.  Aborting."; exit 1; }
        docker-compose -f ./docker/docker-compose.debug.yml build && docker-compose -f ./docker/docker-compose.debug.yml up
        ;;
    pro)
        type docker-compose >/dev/null 2>&1 || { echo >&2 "docker-compose is required but it's not installed.  Aborting."; exit 1; }
        docker-compose -f ./docker/docker-compose.pro.yml build && docker-compose -f ./docker/docker-compose.pro.yml up
        ;;
    stag)
        type docker-compose >/dev/null 2>&1 || { echo >&2 "docker-compose is required but it's not installed.  Aborting."; exit 1; }
        docker-compose -f ./docker/docker-compose.stag.yml build && docker-compose -f ./docker/docker-compose.stag.yml up
        ;;
    test)
        type docker-compose >/dev/null 2>&1 || { echo >&2 "docker-compose is required but it's not installed.  Aborting."; exit 1; }
        docker-compose -f ./docker/docker-compose.test.yml build && docker-compose -f ./docker/docker-compose.test.yml run test
        ;;
    dev)
        type docker-compose >/dev/null 2>&1 || { echo >&2 "docker-compose is required but it's not installed.  Aborting."; exit 1; }
        docker-compose -f ./docker/docker-compose.yml build && docker-compose -f ./docker/docker-compose.yml up
        ;;
  *)
        echo "Usage: docker.sh {test-e2e|test-unit|start|debug|pro|test|dev}" >&2
        exit 1
        ;;
esac

exit 0
