# oikos-web — control-room SPA + desktop app delivery
#
# Extracted from dtoro/oikos (plans/2026-08-15-hexagonal-architecture.md
# Phase 1). The backend API/MCP stack stays in dtoro/oikos; this repo owns
# everything that renders it.

.PHONY: ui desktop desktop-package install webhook clean

# Local sanity-check build of the SPA.
ui:
	cd web && npm run build

desktop: ui   ## Build the Wails desktop app for the current platform
	rm -rf desktop/frontend/dist
	mkdir -p desktop/frontend/dist
	cp -r web/dist/* desktop/frontend/dist/
	cd desktop && CGO_ENABLED=1 go build -tags desktop -ldflags "-X main.version=$$(cat ../VERSION)" -o build/bin/Oikos .

desktop-package: desktop   ## Build + package the desktop app (zip on macOS, tar.gz on Linux)
	@if [ "$(shell uname)" = "Darwin" ]; then \
		mkdir -p desktop/build/bin/Oikos.app/Contents/MacOS desktop/build/bin/Oikos.app/Contents/Resources; \
		APP="desktop/build/bin/Oikos.app"; \
		cp desktop/build/bin/Oikos "$$APP/Contents/MacOS/Oikos"; \
		cp desktop/icon.icns "$$APP/Contents/Resources/icon.icns"; \
		sed "s/\$$(VERSION)/$$(cat VERSION)/" desktop/Info.plist.template > "$$APP/Contents/Info.plist"; \
		cd desktop/build/bin && zip -r oikos-desktop-darwin-$$(uname -m).zip Oikos.app ;; \
	else \
		cd desktop/build/bin && tar czf oikos-desktop-linux-$$(uname -m).tar.gz Oikos ;; \
	fi
	@echo "Package: desktop/build/bin/"

install: desktop-package   ## Install to /Applications (macOS)
	rm -rf /Applications/Oikos.app
	cp -r desktop/build/bin/Oikos.app /Applications/

webhook:   ## Build the deploy-webhook receiver
	go build -o webhook ./cmd/webhook

clean:
	rm -rf web/dist desktop/build desktop/frontend/dist webhook
