#!/bin/bash read -p "How do you want to develop? [(l)ocal / (c)ontainer] " devset case $devset in [Ll] ) echo "Going to create postgres and redis containers now. They will log to this terminal." echo "Press Ctrl + C to exit." sleep 2 devmode="local-db" ;; [Cc] ) echo "Going to create a container environment you can work in." echo "Simply exit to stop the environment." sleep 2 devmode="local-dev" ;; * ) echo "Invalid option supplied. Quitting..." exit -1 ;; esac cp ".config/$devmode.yml" .config/default.yml cp .config/docker_ci.env .config/docker.env if [[ "$devmode" == "local-dev" ]]; then docker compose -f "./compose.$devmode.yml" up -d docker compose -f "./compose.$devmode.yml" exec web apt-get update docker compose -f "./compose.$devmode.yml" exec web apt-get install -y bash echo Installing dependencies... docker compose -f "./compose.$devmode.yml" exec web apt-get install -y git wget curl build-essential python3 ffmpeg libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev docker compose -f "./compose.$devmode.yml" exec web corepack enable docker compose -f "./compose.$devmode.yml" exec web corepack prepare pnpm@latest --activate docker compose -f "./compose.$devmode.yml" exec web git submodule update --init docker compose -f "./compose.$devmode.yml" exec web pnpm install --frozen-lockfile read -p "Is this a new database? [y/N] " runinit case $runinit in [Yy] ) docker compose -f "./compose.$devmode.yml" exec web pnpm build docker compose -f "./compose.$devmode.yml" exec web pnpm migrate ;; * ) ;; esac docker compose -f "./compose.$devmode.yml" exec web bash echo Stopping containers... docker compose -f "./compose.$devmode.yml" stop fi if [[ "$devmode" == "local-db" ]]; then read -p "Did you setup corepack and enable pnpm? [Y/n] " getpnpm case $getpnpm in [Nn] ) corepack enable corepack prepare pnpm@latest --activate ;; * ) ;; esac pnpm i read -p "Is this a new database? [y/N] " runinit case $runinit in [Yy] ) docker compose -f "./compose.$devmode.yml" up -d pnpm build pnpm migrate docker compose -f "./compose.$devmode.yml" down ;; * ) ;; esac docker compose -f "./compose.$devmode.yml" up fi read -p "Scrub dev environment? (Deletes containers AND instance!!!) [y/N] " scrubDev case $scrubDev in [Yy] ) if [[ "$devmode" == "local-dev" ]]; then docker compose -f "./compose.$devmode.yml" start web docker compose -f "./compose.$devmode.yml" exec web pnpm clean-all else pnpm clean-all fi docker compose -f "./compose.$devmode.yml" down rm -rf ./db -v rm -rf ./redis -v rm -rf ./files -v rm -rf ./node_modules -v #TODO: check if these last two are needed rm -rf ./pnpm-store -v ;; * ) ;; esac # read -p "Reset databases? [y/N] " cleardb # case $cleardb in # [Yy] ) # echo "Clearning postgres..." # rm -rf ./db # sleep 1 # echo "Clearing redis..." # rm -rf ./redis # sleep 1 # ;; # * ) # ;; # esac