53 lines
1.8 KiB
Makefile
53 lines
1.8 KiB
Makefile
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
|