.PHONY: build test clean install help

PY := python3

help:
	@echo "Targets:"
	@echo "  build    — produce cloud-sync.pyz (single-file zipapp)"
	@echo "  test     — run pytest"
	@echo "  install  — pip install -e ."
	@echo "  clean    — remove built artifacts"

build: cloud-sync.pyz

# zipapp builds from a source dir; to preserve the cloud_sync/ package
# structure inside the archive we stage it under build/pyz first, then
# point zipapp at that staging dir.
cloud-sync.pyz: cloud_sync/__main__.py $(wildcard cloud_sync/*.py)
	rm -rf build/pyz
	mkdir -p build/pyz
	cp -r cloud_sync build/pyz/
	$(PY) -m zipapp build/pyz -p "/usr/bin/env $(PY)" \
		-m cloud_sync.cli:main -o $@
	rm -rf build/pyz
	@echo "built: $@ ($$(stat -c '%s' $@) bytes)"

test:
	$(PY) -m pytest tests/ -v

install:
	$(PY) -m pip install -e .

clean:
	rm -f cloud-sync.pyz
	rm -rf build/ dist/ *.egg-info __pycache__ \
		cloud_sync/__pycache__ tests/__pycache__ \
		.pytest_cache
