LOCAL_BIN := $(CURDIR)/bin PATH := $(LOCAL_BIN):$(PATH) ifeq (local-migrations-create,$(firstword $(MAKECMDGOALS))) migrationName := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS)) $(eval $(migrationName):;@:) endif local-migrate-up: @goose -allow-missing -dir ./migrations postgres "user=crab password=crab dbname=smm-core host=localhost port=5432 sslmode=disable" up local-migrations-create: @goose -dir ./migrations postgres "user=crab dbname=smm-core host=localhost port=5432 sslmode=disable" create "${migrationName}" sql local-up: docker-compose -f docker-compose-local.yml up -d --force-recreate --build local-down: docker-compose -f docker-compose-local.yml down local-wait_db: timeout 10s bash -c "until docker exec db pg_isready; do sleep 1; done" local-restart: local-down local-up local-wait_db local-migrate-up local-go-init: export GOBIN := $(LOCAL_BIN) local-go-init: go get github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway go get github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2 go get google.golang.org/protobuf/cmd/protoc-gen-go go get google.golang.org/grpc/cmd/protoc-gen-go-grpc go install \ github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway \ github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2 \ google.golang.org/protobuf/cmd/protoc-gen-go \ google.golang.org/grpc/cmd/protoc-gen-go-grpc go install github.com/pressly/goose/v3/cmd/goose@latest generate: rm -rf proto resources mkdir -p proto resources protoc \ -I ./api \ -I ./third_party \ --go_out ./proto --go_opt paths=source_relative \ --go-grpc_out ./proto --go-grpc_opt paths=source_relative \ --grpc-gateway_out ./proto --grpc-gateway_opt paths=source_relative \ --openapiv2_out=./resources \ ./api/smm_core.proto run: go run ./cmd/smm_core/main.go