#!/usr/bin/env bash

source ./.env.local;
SERVER_CONTAINER=$(docker ps | grep $APP_NAME"-server" | awk '{print $1}')

BOLD="$(tput bold)"
YELLOW="$(tput setaf 3)"
GREEN="$(tput setaf 2)"
NC="$(tput sgr0)"

function display_help {
    echo "${GREEN}FM Symfony Docker${NC}"
    echo
    echo "${YELLOW}Usage:${NC}"
    echo "  fm COMMAND [options] [arguments]"
    echo
    echo "${YELLOW}docker-compose Commands:${NC}"
    echo "  ${GREEN}fm up:build${NC}        Build the application"
    echo
    echo "${YELLOW}PHP Commands:${NC}"
    echo "  ${GREEN}fm php ...${NC}   Run a snippet of PHP code"
    echo "  ${GREEN}fm php -v${NC}"
    echo
    echo "${YELLOW}Composer Commands:${NC}"
    echo "  ${GREEN}fm composer ...${NC}                       Run a Composer command"
    echo "  ${GREEN}fm composer require ...${NC}"
    echo
    echo "${YELLOW}NPM Commands:${NC}"
    echo "  ${GREEN}fm npm ...${NC}        Run a npm command"
    echo "  ${GREEN}fm npm run prod${NC}"
    echo
    echo "${YELLOW}Yarn Commands:${NC}"
    echo "  ${GREEN}fm yarn ...${NC}        Run a Yarn command"
    echo "  ${GREEN}fm yarn run prod${NC}"
    echo
    echo "${YELLOW}Symfony Commands:${NC}"
    echo "  ${GREEN}fm symfony ...${NC}        Run a Symfony command"
    echo "  ${GREEN}fm symfony make:migration${NC}"
    echo
    echo "${YELLOW}Symfony Specific Commands:${NC}"
    echo "  ${GREEN}fm migrations${NC}        Exectute both make:migration and doctrine:migrations:migrate"
    echo "  ${GREEN}fm cache:clear${NC}        Clear the cache"
    echo
    echo
    echo
    exit 1
}

# Proxy the "help" command...
if [ "$1" == "help" ] || [ "$1" == "-h" ] || [ "$1" == "-help" ] || [ "$1" == "--help" ]; then
    display_help
elif [ "$1" == "composer" ]; then
  docker exec -it $SERVER_CONTAINER composer ${*:2}
elif [ "$1" = "npm" ]; then
  docker exec -it $SERVER_CONTAINER npm ${*:2}
elif [ "$1" = "yarn" ]; then
  docker exec -it $SERVER_CONTAINER yarn ${*:2}
elif [ "$1" = "php" ]; then
  docker exec -it $SERVER_CONTAINER php ${*:2}
elif [ "$1" == "symfony" ]; then
  docker exec -it $SERVER_CONTAINER php bin/console  ${*:2}
elif [ "$1" == "cache:clear" ] || [ "$1" == "c:c" ]; then
  docker exec -it $SERVER_CONTAINER php bin/console c:c${*:2}
elif [ "$1" == "migrations" ]; then
  docker exec -it $SERVER_CONTAINER php bin/console --no-interaction ma:mi
  docker exec -it $SERVER_CONTAINER php bin/console d:m:m  --allow-no-migration
elif [ "$1" == "up:build" ]; then
  vendor/fabriman/symfony-docker/runtimes/bootstrap
else
  display_help
fi