.PHONY: dev database api online-energieausweis all prod bun-install-database bun-install-api

online-energieausweis:
	bun run dev

dev: online-energieausweis api database

database:
	$(MAKE) -C ../database dev

bun-install-database:
	cd ../database
	bun link
	bun install

bun-install-api: bun-install-database
	cd ../api
	bun install
	bun link @ibcornelsen/database

api:
	$(MAKE) -C ../api dev

all:
	mkdir -p ~/logs
	bun run dev 2>&1 | tee ~/logs/`date '+%d-%m-%Y_%H:%M:%S'`.log

prod: bun-install-api bun-install-database
	mkdir -p ~/logs
	mkdir -p ~/persistent/online-energieausweis
	
# Wir müssen sichergehen, dass der Database Container läuft, sonst können wir ihn nicht linken.
	@if [ ! $$(docker ps | grep database | wc -l) -gt 0 ]; then \
		cd ../database; \
		$(MAKE) prod; \
		cd ../online-energieausweis; \
	fi
	
# Auch die API sollte bereits laufen
	@if [ $$(pm2 pid api) -eq "0" ]; then \
		cd ../api; \
		$(MAKE) prod; \
		cd ../online-energieausweis; \
	fi

	- rm -f ~/online-energieausweis/.env;
	- touch ~/online-energieausweis/.env;
	- echo "PRIVATE_KEY=$(cat /etc/letsencrypt/live/ibcornelsen.de/privkey.pem | base64 | tr -d '\n')" >> ~/online-energieausweis/.env;
	- echo "CERTIFICATE=$(cat /etc/letsencrypt/live/ibcornelsen.de/fullchain.pem | base64 | tr -d '\n')" >> ~/online-energieausweis/.env;

	- pm2 delete online-energieausweis
	pm2 start --name "online-energieausweis" --log ~/logs/`date '+%d-%m-%Y_%H:%M:%S'`.log --time  bun -- astro dev