45 lines
1.2 KiB
Makefile
45 lines
1.2 KiB
Makefile
BINARY_DIR = bin
|
|
BINARIES = $(patsubst cmd/%/,%,$(wildcard cmd/*/))
|
|
|
|
.PHONY: all build test validate clean run $(BINARIES)
|
|
|
|
VERSION := $(shell git describe --tags --always --dirty)
|
|
COMMIT := $(shell git rev-parse --short HEAD)
|
|
COMMIT_DATETIME := $(shell git log -1 --format=%cd --date=iso8601)
|
|
|
|
LDFLAGS := -X git.omicron.one/omicron/linkshare/internal/version.Version=$(VERSION) \
|
|
-X git.omicron.one/omicron/linkshare/internal/version.GitCommit=$(COMMIT) \
|
|
-X "git.omicron.one/omicron/linkshare/internal/version.CommitDateTime=$(COMMIT_DATETIME)"
|
|
OPEN = xdg-open
|
|
|
|
|
|
all: build
|
|
|
|
|
|
build: $(BINARIES)
|
|
|
|
|
|
$(BINARY_DIR):
|
|
mkdir -p $(BINARY_DIR)
|
|
|
|
$(BINARIES): %: $(BINARY_DIR)
|
|
go build -ldflags '$(LDFLAGS)' -o $(BINARY_DIR)/$@ ./cmd/$@/
|
|
|
|
test:
|
|
mkdir -p reports/coverage/
|
|
go test ./... -coverprofile=reports/coverage/coverage.out
|
|
go tool cover -html=reports/coverage/coverage.out -o reports/coverage/coverage.html && $(OPEN) reports/coverage/coverage.html
|
|
|
|
|
|
validate:
|
|
@test -z "$(shell gofumpt -l .)" && echo "No files need formatting" || (echo "Incorrect formatting in:"; gofumpt -l .; exit 1)
|
|
go vet ./...
|
|
|
|
clean:
|
|
rm -rf $(BINARY_DIR)
|
|
rm -rf reports
|
|
go clean
|
|
|
|
run: $(LINKSERV)
|
|
$(LINKSERV)
|