fork of indigo with slightly nicer lexgen
at main 4.8 kB view raw
1 2SHELL = /bin/bash 3.SHELLFLAGS = -o pipefail -c 4 5# base path for Lexicon document tree (for lexgen) 6LEXDIR?=../atproto/lexicons 7 8# https://github.com/golang/go/wiki/LoopvarExperiment 9export GOEXPERIMENT := loopvar 10 11.PHONY: help 12help: ## Print info about all commands 13 @echo "Commands:" 14 @echo 15 @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[01;32m%-20s\033[0m %s\n", $$1, $$2}' 16 17.PHONY: build 18build: ## Build all executables 19 go build ./cmd/goat 20 go build ./cmd/gosky 21 go build ./cmd/bigsky 22 go build ./cmd/relay 23 go build ./cmd/beemo 24 go build ./cmd/lexgen 25 go build ./cmd/stress 26 go build ./cmd/fakermaker 27 go build ./cmd/hepa 28 go build ./cmd/supercollider 29 go build -o ./sonar-cli ./cmd/sonar 30 go build ./cmd/palomar 31 32.PHONY: all 33all: build 34 35.PHONY: test 36test: ## Run tests 37 go test ./... 38 39.PHONY: test-short 40test-short: ## Run tests, skipping slower integration tests 41 go test -test.short ./... 42 43.PHONY: test-interop 44test-interop: ## Run tests, including local interop (requires services running) 45 go clean -testcache && go test -tags=localinterop ./... 46 47.PHONY: test-search 48test-search: ## Run tests, including local search indexing (requires services running) 49 go clean -testcache && go test -tags=localsearch ./... 50 51.PHONY: coverage-html 52coverage-html: ## Generate test coverage report and open in browser 53 go test ./... -coverpkg=./... -coverprofile=test-coverage.out 54 go tool cover -html=test-coverage.out 55 56.PHONY: lint 57lint: ## Verify code style and run static checks 58 go vet ./... 59 test -z $(gofmt -l ./...) 60 61.PHONY: fmt 62fmt: ## Run syntax re-formatting (modify in place) 63 go fmt ./... 64 65.PHONY: check 66check: ## Compile everything, checking syntax (does not output binaries) 67 go build ./... 68 69.PHONY: lexgen 70lexgen: ## Run codegen tool for lexicons (lexicon JSON to Go packages) 71 go run ./cmd/lexgen/ --build-file cmd/lexgen/bsky.json $(LEXDIR) 72 73.PHONY: cborgen 74cborgen: ## Run codegen tool for CBOR serialization 75 go run ./gen 76 77.env: 78 if [ ! -f ".env" ]; then cp example.dev.env .env; fi 79 80.PHONY: run-postgres 81run-postgres: .env ## Runs a local postgres instance 82 docker compose -f cmd/bigsky/docker-compose.yml up -d 83 84.PHONY: run-dev-opensearch 85run-dev-opensearch: .env ## Runs a local opensearch instance 86 docker build -f cmd/palomar/Dockerfile.opensearch . -t opensearch-palomar 87 docker run -p 9200:9200 -p 9600:9600 -e "discovery.type=single-node" -e "plugins.security.disabled=true" -e "OPENSEARCH_INITIAL_ADMIN_PASSWORD=0penSearch-Pal0mar" opensearch-palomar 88 89.PHONY: run-dev-relay 90run-dev-relay: .env ## Runs relay for local dev 91 LOG_LEVEL=info go run ./cmd/relay --admin-password localdev serve 92 93.PHONY: run-dev-ident 94run-dev-ident: .env ## Runs 'bluepages' identity directory for local dev 95 GOLOG_LOG_LEVEL=info go run ./cmd/bluepages serve 96 97.PHONY: build-relay-image 98build-relay-image: ## Builds relay docker image 99 docker build -t relay -f cmd/relay/Dockerfile . 100 101.PHONY: build-relay-admin-ui 102build-relay-admin-ui: ## Build relay admin web UI 103 cd cmd/relay/relay-admin-ui; yarn install --frozen-lockfile; yarn build 104 mkdir -p public 105 cp -r cmd/relay/relay-admin-ui/dist/* public/ 106 107.PHONY: run-relay-image 108run-relay-image: 109 docker run -p 2470:2470 relay /relay serve --admin-password localdev 110# --crawl-insecure-ws 111 112.PHONY: run-dev-search 113run-dev-search: .env ## Runs search daemon for local dev 114 GOLOG_LOG_LEVEL=info go run ./cmd/palomar run 115 116.PHONY: sonar-up 117sonar-up: # Runs sonar docker container 118 docker compose -f cmd/sonar/docker-compose.yml up --build -d || docker-compose -f cmd/sonar/docker-compose.yml up --build -d 119 120.PHONY: sc-reload 121sc-reload: # Reloads supercollider 122 go run cmd/supercollider/main.go \ 123 reload \ 124 --port 6125 --total-events 2000000 \ 125 --hostname alpha.supercollider.jazco.io \ 126 --key-file out/alpha.pem \ 127 --output-file out/alpha_in.cbor 128 129.PHONY: sc-fire 130sc-fire: # Fires supercollider 131 go run cmd/supercollider/main.go \ 132 fire \ 133 --port 6125 --events-per-second 10000 \ 134 --hostname alpha.supercollider.jazco.io \ 135 --key-file out/alpha.pem \ 136 --input-file out/alpha_in.cbor 137 138.PHONY: run-netsync 139run-netsync: .env ## Runs netsync for local dev 140 go run ./cmd/netsync --checkout-limit 100 --worker-count 100 --out-dir ../netsync-out 141 142SCYLLA_VERSION := latest 143SCYLLA_CPU := 0 144SCYLLA_NODES := 127.0.0.1:9042 145 146.PHONY: run-scylla 147run-scylla: 148 @echo "==> Running test instance of Scylla $(SCYLLA_VERSION)" 149 @docker pull scylladb/scylla:$(SCYLLA_VERSION) 150 @docker run --name scylla -p 9042:9042 --cpuset-cpus=$(SCYLLA_CPU) --memory 1G --rm -d scylladb/scylla:$(SCYLLA_VERSION) 151 @until docker exec scylla cqlsh -e "DESCRIBE SCHEMA"; do sleep 2; done 152 153.PHONY: stop-scylla 154stop-scylla: 155 @echo "==> Stopping test instance of Scylla $(SCYLLA_VERSION)" 156 @docker stop scylla