#!/usr/bin/env zsh TABSHIFT_DIRECTUS_PATH="${0:h}/../../apps/directus" TABSHIFT_DIRECTUS_NAME='tabshift4docker/directus' CMS_EXTENSION_PATH="${0:h}/../hda-cms-extension" DOCKER_E2E_SETUP_PATH="${0:h}/docker" start_docker_runtime() { colima status || colima start } stop_docker_runtime() { colima status && colima stop } build_tabshift_directus_image() { if docker image ls | grep ${TABSHIFT_DIRECTUS_NAME}; then return fi docker buildx build -t ${TABSHIFT_DIRECTUS_NAME}:latest --platform linux/arm64 $TABSHIFT_DIRECTUS_PATH } start_docker_compose_service() { pushd -q ${DOCKER_E2E_SETUP_PATH} docker-compose up ${start_in_background:+'-d'} popd -q } stop_docker_compose_services() { pushd -q ${DOCKER_E2E_SETUP_PATH} docker-compose stop popd -q } start_docker_compose_service_and_runtime() { local start_in_background=${1:+'y'} start_docker_runtime build_tabshift_directus_image start_docker_compose_service } start_docker_compose_service_in_background() { start_docker_compose_service_and_runtime start_in_background } start_docker_compose_service_in_foreground() { start_docker_compose_service_and_runtime } stop_docker_compose_services_and_runtime() { stop_docker_compose_services stop_docker_runtime } build_cms_extension() { pushd -q $CMS_EXTENSION_PATH pnpm build popd -q } trap 'docker container prune -f' INT TERM EXIT main() { local CMD=$1 case $CMD in start) build_cms_extension start_docker_compose_service_in_background ;; start-fg) build_cms_extension start_docker_compose_service_in_foreground ;; stop-all) stop_docker_compose_services_and_runtime ;; *) stop_docker_compose_services ;; esac } main $*