update 33.1 50
This commit is contained in:
62
Makefile
Normal file
62
Makefile
Normal file
@@ -0,0 +1,62 @@
|
||||
# Thin control Makefile — one target per ctrl/ script, and the subcommand is an
|
||||
# argument rather than a second target: `make cluster down`, not `make cluster-down`.
|
||||
#
|
||||
# The logic lives in the scripts, never here. Each target maps to exactly one
|
||||
# file, and that file holds the variants:
|
||||
#
|
||||
# make cluster up -> ctrl/cluster.sh up
|
||||
# make build amar -> ctrl/build.sh amar
|
||||
#
|
||||
# Bare words pass straight through. Anything starting with a dash would be
|
||||
# swallowed by make itself, so pass those via ARGS instead:
|
||||
#
|
||||
# make component ARGS="publish soleprint-ui /tmp/out --dist"
|
||||
# make deploy ARGS="--build"
|
||||
#
|
||||
# Every script stays runnable on its own (./ctrl/kind-up.sh still works, and each
|
||||
# built room keeps its own gen/<room>/ctrl/*.sh) — the standalone rule holds, and
|
||||
# this only saves typing.
|
||||
#
|
||||
# Start with: make build && make start
|
||||
|
||||
# The room to act on when none is named. Rooms live in cfg/ and build into gen/.
|
||||
ROOM ?= standalone
|
||||
PYTHON ?= python3
|
||||
export PYTHON
|
||||
|
||||
# Words after the target become the script's subcommand. Make would otherwise
|
||||
# treat them as goals of their own, so each gets a no-op rule.
|
||||
ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
|
||||
ifneq ($(ARGS),)
|
||||
$(eval $(ARGS):;@:)
|
||||
endif
|
||||
|
||||
.DEFAULT_GOAL := help
|
||||
.PHONY: help build start stop cluster deploy component
|
||||
|
||||
help: ## list targets
|
||||
@grep -hE '^[a-z]+:.*?##' $(MAKEFILE_LIST) | sed 's/:.*##/\t/' | expand -t16
|
||||
|
||||
# ── rooms ──────────────────────────────────────────────────────────────────
|
||||
|
||||
build: ## build a room into gen/ [<room>|all|models]
|
||||
bash ctrl/build.sh $(or $(ARGS),$(ROOM))
|
||||
|
||||
start: ## run a built room [<room>] [-d] [--build]
|
||||
bash ctrl/start.sh $(or $(ARGS),$(ROOM))
|
||||
|
||||
stop: ## stop a running room [<room>]
|
||||
bash ctrl/stop.sh $(or $(ARGS),$(ROOM))
|
||||
|
||||
# ── cluster ────────────────────────────────────────────────────────────────
|
||||
|
||||
cluster: ## shared kind cluster [up|down|status] (default status)
|
||||
bash ctrl/cluster.sh $(or $(ARGS),status)
|
||||
|
||||
# ── distribution ───────────────────────────────────────────────────────────
|
||||
|
||||
component: ## publish components [list|sync|watch|publish|diff]
|
||||
$(PYTHON) ctrl/spr.py $(or $(ARGS),list)
|
||||
|
||||
deploy: ## push standalone to the server [--build|--sync-only]
|
||||
bash ctrl/deploy.sh $(ARGS)
|
||||
Reference in New Issue
Block a user