#!/bin/bash # Based on https://github.com/adriancooney/Taskfile and # https://nickjanetakis.com/blog/replacing-make-with-a-shell-script-for-running-your-projects-tasks. set -e APP_BUILD="${APP_BUILD:=dynamic}" DOCKER_TAG=meetup-raffle-winner-picker function build { # Build the Docker image. docker image build . --tag ${DOCKER_TAG} } function ci:test { # Run continuous integration (CI) checks. APP_BUILD=static build test --testdox "${@}" } function composer { # Run Composer commands. docker container run --rm -it \ -v $(pwd):/app \ --entrypoint composer \ ${DOCKER_TAG} "${@}" } function help { printf "%s [args]\n\nTasks:\n" "${0}" compgen -A function | grep -v "^_" | cat -n printf "\nExtended help:\n Each task has comments for general usage\n" } function test { # Run PHPUnit tests. if [[ $APP_BUILD == "dynamic" ]]; then docker container run --rm -t -v $PWD:/app --entrypoint phpunit ${DOCKER_TAG} "${@}" elif [[ $APP_BUILD == "static" ]]; then docker container run --rm -t --entrypoint phpunit ${DOCKER_TAG} "${@}" fi } eval "${@:-help}"