#!/bin/bash docker compose down if [[ "$(basename $(pwd))" == "igniter" ]]; then cd .. ./setup cd igniter exit fi docker compose down dockerUID=$(id -u) dockerGID=$(id -g) mkdir dbdata &> /dev/null mkdir igniter &> /dev/null echo "Container build in progress.." composer_docker_hash=$(docker build -q docker_build) if [ ! -f igniter/composer.json ]; then docker run --user $dockerUID:$dockerGID --rm -v ./igniter:/app -it $composer_docker_hash composer create-project codeigniter4/appstarter tmp mv igniter/tmp/* igniter mv igniter/tmp/.* igniter fi if [ ! -f igniter/.gitignore ]; then touch igniter/.gitignore fi for executable in start stop setup exec spark-exec switch-branch-migrate; do if ! grep -q $executable igniter/.gitignore; then echo "# Codeigniter Setup Script" >> igniter/.gitignore break fi done for executable in start stop setup exec spark-exec switch-branch-migrate; do if ! grep -q $executable igniter/.gitignore; then echo "${executable}" >> igniter/.gitignore fi ln -sf ../$executable igniter/$executable done docker run --user $dockerUID:$dockerGID --rm -v ./igniter:/app -it $composer_docker_hash composer install cp env_docker .env echo "dockerUID=$dockerUID" >> .env echo "dockerGID=$dockerGID" >> .env if [ -z "$(ls -A dbdata)" ]; then echo "Initialising database.." docker compose up database -d &> /dev/null while ! docker compose logs database | grep -q 'mysqld: ready for connections'; do sleep 0.5 done docker compose down database &> /dev/null fi docker compose up -d echo "Waiting for app to start up..." while ! docker compose logs app | grep -q 'Development Server'; do sleep 0.5 done echo "Waiting for database to start up..." while ! docker compose logs database | grep -q 'mysqld: ready for connections' ; do echo "not ready.." sleep 0.5 done # docker compose exec app php spark docker compose down