.PHONY: setup test run run-once clean validate

VENV = .venv
PYTHON = $(VENV)/bin/python3
PIP = $(VENV)/bin/pip

setup: $(VENV)/bin/activate

$(VENV)/bin/activate: requirements.txt
	python3 -m venv $(VENV)
	$(PIP) install --upgrade pip
	$(PIP) install -r requirements.txt
	touch $(VENV)/bin/activate

test: setup
	$(PYTHON) -m unittest discover -s tests -p "test_*.py"

run: setup
	$(PYTHON) collect_p2p.py

run-once: setup
	$(PYTHON) collect_p2p.py --once

validate: setup
	@if [ -z "$(PATH_TO_VALIDATE)" ]; then \
		echo "Usage: make validate PATH_TO_VALIDATE=<path>"; \
		exit 1; \
	fi
	$(PYTHON) collect_p2p.py --validate $(PATH_TO_VALIDATE)

clean:
	rm -rf $(VENV)
	find . -type f -name "*.pyc" -delete
	find . -type d -name "__pycache__" -exec rm -rf {} +
	find . -type f -name "*.tmp" -delete
	@echo "Cleanup complete."
