UV ?= uv
PROJECT_DIR ?= .

.PHONY: run check format install clean

run:
	$(UV) run smfetch

format:
	$(UV) run ruff format $(PROJECT_DIR)

check:
	$(UV) run ruff check --fix --select I,F,UP,B $(PROJECT_DIR)
	$(UV) run ty check $(PROJECT_DIR)

install: clean format check
	$(UV) sync

clean:
	find $(PROJECT_DIR) -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true
	find $(PROJECT_DIR) -type f -name "*.py[co]" -delete 2>/dev/null || true
	rm -rf $(PROJECT_DIR)/.ruff_cache $(PROJECT_DIR)/.ty_cache $(PROJECT_DIR)/.mypy_cache $(PROJECT_DIR)/.pyright $(PROJECT_DIR)/.eggs 2>/dev/null || true
	rm -rf $(PROJECT_DIR)/dist $(PROJECT_DIR)/build $(PROJECT_DIR)/*.egg-info 2>/dev/null || true
	rm -rf $(PROJECT_DIR)/.pytest_cache $(PROJECT_DIR)/.coverage* $(PROJECT_DIR)/htmlcov 2>/dev/null || true
