Files
quyun-v2/Makefile
2025-12-15 17:55:32 +08:00

69 lines
2.0 KiB
Makefile

SHELL := /bin/sh
BACKEND_DIR := backend
FRONTEND_ADMIN_DIR := frontend/admin
FRONTEND_USER_DIR := frontend/user
FRONTEND_SUPERADMIN_DIR := frontend/superadmin
ATOMCTL ?= atomctl
TENANT_CODE ?= demo
TENANT_NAME ?= Demo Tenant
TENANT_UUID ?= $(shell python3 -c 'import uuid; print(uuid.uuid4())' 2>/dev/null || uuidgen 2>/dev/null || echo "00000000-0000-0000-0000-000000000000")
.PHONY: help
help:
@printf "%s\n" "Targets:"
@printf "%s\n" " make migrate Run backend migrations (ARGS=up)"
@printf "%s\n" " make gen-route atomctl gen route (backend)"
@printf "%s\n" " make gen-provider atomctl gen provider (backend)"
@printf "%s\n" " make build-frontend Build admin+user frontends (requires npm)"
@printf "%s\n" " make serve Run backend server (serves built dist)"
@printf "%s\n" " make preview build + serve"
@printf "%s\n" ""
@printf "%s\n" "Preview URLs (after make preview):"
@printf "%s\n" " User : http://localhost:8080/t/$(TENANT_CODE)/"
@printf "%s\n" " Admin: http://localhost:8080/t/$(TENANT_CODE)/admin/"
.PHONY: migrate
migrate:
@cd $(BACKEND_DIR) && $(ATOMCTL) migrate $(ARGS)
.PHONY: model
model:
@cd $(BACKEND_DIR) && $(ATOMCTL) gen model
.PHONY: gen-route
gen-route:
@cd $(BACKEND_DIR) && $(ATOMCTL) gen route --path .
.PHONY: gen-provider
gen-provider:
@cd $(BACKEND_DIR) && $(ATOMCTL) gen provider
.PHONY: build-admin
build-admin:
@cd $(FRONTEND_ADMIN_DIR) && npm install
@cd $(FRONTEND_ADMIN_DIR) && npm run build
.PHONY: build-user
build-user:
@cd $(FRONTEND_USER_DIR) && npm install
@cd $(FRONTEND_USER_DIR) && npm run build
.PHONY: build-superadmin
build-superadmin:
@cd $(FRONTEND_SUPERADMIN_DIR) && npm install
@cd $(FRONTEND_SUPERADMIN_DIR) && npm run build
.PHONY: build-frontend
build-frontend: build-admin build-user build-superadmin
.PHONY: serve
serve:
@cd $(BACKEND_DIR) && mkdir -p .gocache .gotmp
@cd $(BACKEND_DIR) && env GOCACHE=$$PWD/.gocache GOTMPDIR=$$PWD/.gotmp go run . serve
.PHONY: preview
preview: build-frontend serve