.PHONY: help build

SHELL:=/bin/bash
NAME?=datatransport-messagebox
POD=$(NAME)-pod
CONTAINER_TRANSPORT=$(NAME)-transport
CONTAINER_DATABASE=$(NAME)-postgresql
IMAGE?=$(NAME)
TAG?=2025-06
DATA_TRANSPORT_PATH=/opt/transport
TIMEOUT=300
USER=transport

help:
	@echo "Targets:"
	@echo ""
	@echo "  create    	create the pod and containers"
	@echo "  remove    	remove the pod and containers"	
	@echo "  start     	start the pod and containers"
	@echo "  stop      	stop the pod and containers"
	@echo "  remove-all remove pod, containers and volumes"
	@echo "  shell     	run a user shell in the transport container"
	@echo "  root-shell run a root shell in the transport container"
	@echo "  psql     	run psql in the database container" 
	@echo "  logs    	view the pod logs "
	@echo "  viewlog    view transport logs "
	@echo "  ps			view the pod processes"
	@echo ""

create:
	podman pod create \
		--replace \
		--name $(POD)
	podman container create \
		--replace \
		--rm \
		--name $(NAME)-postgresql \
		--pod $(POD) \
		--volume $(NAME)_postgresql:/var/lib/postgresql/data \
		--env POSTGRES_USER=$(USER) \
		--env POSTGRES_PASSWORD=starpower \
		docker.io/library/postgres:16
	podman container create \
		--replace \
		--rm \
		--name $(NAME)-transport \
		--pod $(POD) \
		--volume $(NAME)_transport:/opt/transport \
		datatransport-devel:2025-06

psql:
	podman exec -it $(CONTAINER_TRANSPORT) -u $(USER) psql

shell:
	podman exec -it -w $(DATA_TRANSPORT_PATH)/groups -u $(USER) $(CONTAINER_TRANSPORT) bash

root-shell:
	podman exec -it -w / -u root $(CONTAINER_TRANSPORT) bash

start:
	podman pod start $(POD)

stop:	
	podman pod stop --ignore --time $(TIMEOUT) $(POD)

logs:
	podman pod logs $(POD) 

viewlog:
	podman exec -it $(CONTAINER_TRANSPORT) viewlog -r

remove: stop
	podman rm --force $(CONTAINER_TRANSPORT)
	podman rm --force $(CONTAINER_DATABASE)
	podman rm --force $(POD)

clean-all: clean 
	podman volume rm --force $(NAME)_transport
	podman volume rm --force $(NAME)_postgresql

