include .envrc ## help: print this help message .PHONY: help help: @echo 'Usage:' @sed -n 's/^##//p' ${MAKEFILE_LIST} | column -t -s ':' | sed -e 's/^/ /' .PHONY: confirm confirm: @echo -n 'Are you sure? [y/N] ' && read ans && [ $${ans:-N} = y ] current_time = $(shell date -Iseconds) git_description = $(shell git describe --always --dirty) linker_flags = '-s -X main.buildTime=${current_time} -X main.version=${git_description}' .PHONY: build/api build/api: @echo 'Building cmd/api...' go build -ldflags=${linker_flags} -o=./bin/api ./cmd/api GOOS=linux GOARCH=amd64 go build -ldflags=${linker_flags} -o=./bin/linux_amd64/api ./cmd/api ## run/api: run the cmd/api application .PHONY: run/api run/api: @echo "Running the API" go run ./cmd/api .PHONY: db/psql db/psql: psql ${PARTY_DB_DSN} .PHONY: db/migrations/new db/migrations/new: @echo 'Creating migration files for ${name}...' migrate create -seq -ext=.sql -dir=./migrations ${name} .PHONY: db/migrations/up db/migrations/up: confirm @echo 'Running up migrations...' migrate -path ./migrations -database ${PARTY_DB_DSN} up .PHONY: vendor vendor: @echo 'Tidying and verifying module dependencies...' go mod tidy go mod verify @echo 'Vendoring dependencies...' go mod vendor