PROJ = api.dummy.kevinnlsamuel.com

ifndef PROJ
$(error variable $$PROJ needs to be defined)
endif


POD_MOUNTS = \
	-w /app \
	-v $(PWD):/app:z \
	-v pnpm-global:/usr/local:z \
	-v pnpm-store:/usr/local/share/pnpm:z \
	-v pnpm-config:/root/.config/pnpm:z \
	-v $(PROJ)_modules:/app/node_modules:z

POD_OPTIONS_TEMPLATE = \
	--interactive --tty \
	--rm \
	--name $(PROJ)_$(CONTAINER_TAG) \
	$(POD_MOUNTS) $(EXTRA_FLAGS) \
	node:alpine

serve: EXTRA_FLAGS = --publish 3000:3000
serve: SCRIPT = serve
serve: run

dev: EXTRA_FLAGS = --publish 3000:3000
dev: SCRIPT = dev
dev: run

run: CONTAINER_TAG = $(firstword $(SCRIPT))
run:
	podman run $(POD_OPTIONS_TEMPLATE) pnpm run $(SCRIPT)


setup: SCRIPT = setup
setup:
	podman run $(POD_OPTIONS_TEMPLATE) sh -c 'command -v pnpm || npm install -g pnpm'
	podman run $(POD_OPTIONS_TEMPLATE) pnpm config set store-dir /usr/local/share/pnpm --global
	podman run $(POD_OPTIONS_TEMPLATE) pnpm install

sh: CONTAINER_TAG = sh
sh:
	podman run $(POD_OPTIONS_TEMPLATE) sh

