.PHONY: install install-dev test build wheel sdist upload upload-test test-release bump clean prepare-data clean-data

PKG_DATA = hermes_navigator/data

# ---------------------------------------------------------------------------
# dev
# ---------------------------------------------------------------------------

install:
	pip install -e .

install-dev:
	pip install -e ".[dev,controller,daemon,telegram]"

test:
	pytest -v

# ---------------------------------------------------------------------------
# data assembly (temporary staging into package dir before build)
# ---------------------------------------------------------------------------

prepare-data:
	mkdir -p $(PKG_DATA)
	cp examples/config.yml      $(PKG_DATA)/config.yml
	cp examples/universes.yml   $(PKG_DATA)/universes.yml
	cp skills/navigator.skill.yml $(PKG_DATA)/skill.yml

clean-data:
	rm -rf $(PKG_DATA)

# ---------------------------------------------------------------------------
# build
# ---------------------------------------------------------------------------

build: clean prepare-data
	python -m build
	$(MAKE) clean-data

wheel: prepare-data
	python -m build --wheel
	$(MAKE) clean-data

sdist: prepare-data
	python -m build --sdist
	$(MAKE) clean-data

upload: build
	twine upload dist/*

upload-test: build
	twine upload --repository testpypi dist/*

test-release: bump clean build
	twine upload --repository testpypi dist/*

bump:
	python bump.py $(TYPE)

# ---------------------------------------------------------------------------
# clean
# ---------------------------------------------------------------------------

clean: clean-data
	rm -rf build/ dist/ *.egg-info hermes_navigator.egg-info __pycache__ .pytest_cache .hatch
	find . -type d -name __pycache__ -exec rm -rf {} + 2>/dev/null || true
	find . -type f -name "*.pyc" -delete
