1
0
mirror of https://github.com/avatao-content/test-tutorial-framework synced 2024-11-15 06:27:18 +00:00
test-tutorial-framework/hack/tfw.sh

85 lines
2.7 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
2018-04-16 18:45:46 +00:00
set -eu
2018-04-15 19:50:43 +00:00
set -o pipefail
set -o errtrace
shopt -s expand_aliases
[ "$(uname)" == "Darwin" ] && alias readlink="greadlink" || :
SCRIPT_DIR="$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")"
2018-06-15 13:18:46 +00:00
TFW_PATH="${TFW_PATH:-$SCRIPT_DIR/../..}"
BASEIMAGE_REPO="${BASEIMAGE_REPO:-baseimage-tutorial-framework}"
2018-06-15 13:18:46 +00:00
CHALLENGE_REPO="${CHALLENGE_REPO:-"$(basename "$(realpath "${SCRIPT_DIR}/..")")"}"
FRONTEND_REPO="${FRONTEND_REPO:-frontend-tutorial-framework}"
2018-06-15 13:18:46 +00:00
BASEIMAGE_PATH="${TFW_PATH}/${BASEIMAGE_REPO}"
CHALLENGE_PATH="${TFW_PATH}/${CHALLENGE_REPO}"
FRONTEND_PATH="${TFW_PATH}/${FRONTEND_REPO}"
2018-06-15 13:18:46 +00:00
source "${SCRIPT_DIR}/libhack/baseimage.sh"
source "${SCRIPT_DIR}/libhack/challenge.sh"
source "${SCRIPT_DIR}/libhack/frontend.sh"
2018-06-15 13:18:46 +00:00
start_challenge_and_frontend() {
trap 'exit' INT TERM
trap 'kill 0' EXIT
[[ "${RUN_FRONTEND:-1}" == "1" ]] && frontend::run &
2018-06-15 13:18:46 +00:00
[[ "${BUILD:-1}" == "1" ]] && challenge::build
challenge::run $@
wait
}
2018-04-19 15:01:59 +00:00
case ${1:-} in
start)
2018-06-15 13:18:46 +00:00
baseimage::build_if_exists
BUILD=1 RUN_FRONTEND=1 start_challenge_and_frontend ${@:2}
;;
run)
2018-06-15 13:18:46 +00:00
BUILD=0 RUN_FRONTEND=1 start_challenge_and_frontend ${@:2}
;;
startcontainer)
2018-06-15 13:18:46 +00:00
baseimage::build_if_exists
BUILD=1 RUN_FRONTEND=0 start_challenge_and_frontend ${@:2}
;;
runcontainer)
2018-06-15 13:18:46 +00:00
BUILD=0 RUN_FRONTEND=0 start_challenge_and_frontend ${@:2}
;;
runfrontend)
frontend::run
;;
buildtfw)
2018-06-15 13:18:46 +00:00
baseimage::build_if_exists
;;
build)
2018-06-15 13:18:46 +00:00
baseimage::build_if_exists
challenge::build
;;
buildwithfrontend)
2018-06-15 13:18:46 +00:00
baseimage::build_if_exists
challenge::build_with_frontend
;;
releasetfw)
2018-06-18 12:53:10 +00:00
if [[ -d "$BASEIMAGE_PATH" ]]; then
baseimage::release
fi
;;
builddocs)
2018-06-18 12:53:10 +00:00
if [[ -d "$BASEIMAGE_PATH" ]]; then
baseimage::builddocs
fi
;;
*)
2018-06-15 13:18:46 +00:00
echo "Usage: tfw.sh [COMMAND]"
echo " |--- start: build & run TFW challenge and Angular frontend"
echo " |--- run: run TFW challenge and Angular frontend"
echo " |--- startcontainer: build & run TFW challenge, container only"
echo " |--- runcontainer: run TFW challenge, container only"
echo " |--- buildtfw: build TFW baseimage"
2018-06-15 13:18:46 +00:00
echo " |--- build: build TFW baseimage and challenge"
echo " |--- buildwithfrontend: build TFW baseimage and challenge, include frontend in image"
echo " |--- releasetfw: tag TFW baseimage and push to upstream"
echo " |--- builddocs: build baseimage documentation (in docs/build/html)"
;;
esac