codeigniter-setup-script/setup
2025-05-07 13:42:01 +02:00

79 lines
2.2 KiB
Bash
Executable file

#!/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.."
docker build -q docker_build -t script_igniter
if [ ! -f igniter/composer.json ]; then
docker run --user $dockerUID:$dockerGID --rm -v ./igniter:/app -it script_igniter composer create-project codeigniter4/appstarter tmp
mv igniter/tmp/* igniter
mv igniter/tmp/.* igniter
rmdir igniter/tmp
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 script_igniter composer install
cp env_docker .env
cp env_docker igniter/.env
echo "authjwt.keys.default.0.secret = $(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 50 | head -n 1)" >> .env
echo "dockerUID=$dockerUID" >> .env
echo "dockerGID=$dockerGID" >> .env
echo "authjwt.keys.default.0.secret = $(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 50 | head -n 1)"
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