.PHONY: format publish_beta publish_electron_release download_artifacts update_pkgbuild logs

VERSION_FILE := VERSION
CURRENT_VERSION := $(shell cat $(VERSION_FILE))

format:
	uv run ruff format src/
	cd webclient && npm run format

publish_beta:
	@echo "Current version: $(CURRENT_VERSION)"
	@python3 -c "import re; v='$(CURRENT_VERSION)'; m=re.match(r'^(.+?)(dev|a|alpha|b|beta|rc)(\d+)\$$',v); print(m.group(1)+m.group(2)+str(int(m.group(3))+1) if m else v+'.1')" > .new_version
	@NEW_VERSION=$$(cat .new_version) && \
		echo "New version: $$NEW_VERSION" && \
		echo "$$NEW_VERSION" > $(VERSION_FILE) && \
		sed -i 's/"version": "[^"]*"/"version": "'$$NEW_VERSION'"/' webclient/package.json && \
		sed -i 's/^pkgver=.*/pkgver='$$NEW_VERSION'/' packaging/archlinux/PKGBUILD && \
		git add $(VERSION_FILE) webclient/package.json packaging/archlinux/PKGBUILD && \
		git commit -m "Bump version to $$NEW_VERSION" && \
		git tag "v$$NEW_VERSION" && \
		git push && \
		git push origin "v$$NEW_VERSION" && \
		rm -f .new_version
	@echo "Published v$$(cat $(VERSION_FILE))"

download_artifacts:
	@echo "Clearing ignored_files/artifacts..."
	@rm -rf ignored_files/artifacts && mkdir -p ignored_files/artifacts
	@echo "Downloading latest release artifacts..."
	gh release download --repo e-lie/renardo --dir ignored_files/artifacts --pattern '*'
	@echo "Done."

logs:
	lnav $(shell uv run python -c "from platformdirs import user_log_dir; print(user_log_dir('renardo'))")

update_pkgbuild:
	sed -i 's/^pkgver=.*/pkgver=$(CURRENT_VERSION)/' packaging/archlinux/PKGBUILD

publish_electron_release:
	@echo "Triggering electron release for v$(CURRENT_VERSION)"
	gh workflow run publish-electron-release.yml --ref $(shell git rev-parse --abbrev-ref HEAD) --field tag=v$(CURRENT_VERSION)
