.PHONY: build run clean run-docker stop-docker logs-docker

# Docker image details
IMAGE_NAME = git.dws.rip/dubey/spectra
TAG = main

# Local development settings
PYTHON = python3
PIP = pip3
PORT = 5000

build:
	docker build -t $(IMAGE_NAME):$(TAG) .

run:
	$(PYTHON) app.py

install:
	$(PIP) install -r requirements.txt

clean:
	find . -type d -name "__pycache__" -exec rm -r {} +
	find . -type f -name "*.pyc" -delete
	rm -rf thumbnails/*
	rm -rf uploads/*

run-docker:
	docker run -d \
		--name spectra \
		-p $(PORT):5000 \
		-v $(PWD)/uploads:/app/uploads \
		-v $(PWD)/thumbnails:/app/thumbnails \
		-v $(PWD)/photos.db:/app/photos.db \
		$(IMAGE_NAME):$(TAG)

run-docker-attached:
	docker run -it \
		--name spectra \
		-p $(PORT):5000 \
		-v $(PWD)/uploads:/app/uploads \
		-v $(PWD)/thumbnails:/app/thumbnails \
		-v $(PWD)/photos.db:/app/photos.db \
		$(IMAGE_NAME):$(TAG)

stop-docker:
	docker stop spectra
	docker rm spectra

logs-docker:
	docker logs -f spectra

rebuild: clean build run-docker

help:
	@echo "Available commands:"
	@echo "  make build         - Build Docker image"
	@echo "  make run          - Run locally using Python"
	@echo "  make install      - Install Python dependencies"
	@echo "  make clean        - Remove cache files and generated content"
	@echo "  make run-docker   - Run in Docker container"
	@echo "  make stop-docker  - Stop and remove Docker container"
	@echo "  make logs-docker  - View Docker container logs"
	@echo "  make rebuild      - Clean, rebuild and run Docker container"