1+ PROVIDER_DIR := $(PWD )
2+ TEST? =$$(go list ./... | grep -v 'vendor' )
3+ HOSTNAME =keyfactor.com
4+ GOFMT_FILES := $$(find $(PROVIDER_DIR ) -name '*.go' |grep -v vendor )
5+ NAMESPACE =keyfactor
6+ WEBSITE_REPO =https://github.com/Keyfactor/keyfactor-auth-client
7+ NAME =keyfactor-auth-client
8+ BINARY =${NAME}
9+ VERSION := $(GITHUB_REF_NAME )
10+ ifeq ($(VERSION ) ,)
11+ VERSION := v1.0.0
12+ endif
13+ OS_ARCH := $(shell go env GOOS) _$(shell go env GOARCH)
14+ BASEDIR := ${HOME}/go/bin
15+ INSTALLDIR := ${BASEDIR}
16+ MARKDOWN_FILE := README.md
17+ TEMP_TOC_FILE := temp_toc.md
18+
19+
20+
21+ default : build
22+
23+ build : fmt
24+ go install
25+
26+ release :
27+ GOOS=darwin GOARCH=amd64 go build -o ./bin/${BINARY} _${VERSION} _darwin_amd64 -ldflags " -X 'keyfactor_auth_client/pkg.Version=${VERSION} ' -X 'keyfactor_auth_client/pkg.BuildTime=$$ (date)' -X 'keyfactor_auth_client/pkg.CommitHash=$$ (git rev-parse HEAD)'"
28+ GOOS=freebsd GOARCH=386 go build -o ./bin/${BINARY} _${VERSION} _freebsd_386 -ldflags " -X 'keyfactor_auth_client/pkg.Version=${VERSION} ' -X 'keyfactor_auth_client/pkg.BuildTime=$$ (date)' -X 'keyfactor_auth_client/pkg.CommitHash=$$ (git rev-parse HEAD)'"
29+ GOOS=freebsd GOARCH=amd64 go build -o ./bin/${BINARY} _${VERSION} _freebsd_amd64 -ldflags " -X 'keyfactor_auth_client/pkg.Version=${VERSION} ' -X 'keyfactor_auth_client/pkg.BuildTime=$( date) ' -X 'keyfactor_auth_client/pkg.CommitHash=$( git rev-parse HEAD) '"
30+ GOOS=freebsd GOARCH=arm go build -o ./bin/${BINARY} _${VERSION} _freebsd_arm -ldflags " -X 'keyfactor_auth_client/pkg.Version=${VERSION} ' -X 'keyfactor_auth_client/pkg.BuildTime=$$ (date)' -X 'keyfactor_auth_client/pkg.CommitHash=$$ (git rev-parse HEAD)'"
31+ GOOS=linux GOARCH=386 go build -o ./bin/${BINARY} _${VERSION} _linux_386 -ldflags " -X 'keyfactor_auth_client/pkg.Version=${VERSION} ' -X 'keyfactor_auth_client/pkg.BuildTime=$$ (date)' -X 'keyfactor_auth_client/pkg.CommitHash=$$ (git rev-parse HEAD)'"
32+ GOOS=linux GOARCH=amd64 go build -o ./bin/${BINARY} _${VERSION} _linux_amd64 -ldflags " -X 'keyfactor_auth_client/pkg.Version=${VERSION} ' -X 'keyfactor_auth_client/pkg.BuildTime=$$ (date)' -X 'keyfactor_auth_client/pkg.CommitHash=$$ (git rev-parse HEAD)'"
33+ GOOS=linux GOARCH=arm go build -o ./bin/${BINARY} _${VERSION} _linux_arm -ldflags " -X 'keyfactor_auth_client/pkg.Version=${VERSION} ' -X 'keyfactor_auth_client/pkg.BuildTime=$$ (date)' -X 'keyfactor_auth_client/pkg.CommitHash=$$ (git rev-parse HEAD)'"
34+ GOOS=openbsd GOARCH=386 go build -o ./bin/${BINARY} _${VERSION} _openbsd_386 -ldflags " -X 'keyfactor_auth_client/pkg.Version=${VERSION} ' -X 'keyfactor_auth_client/pkg.BuildTime=$$ (date)' -X 'keyfactor_auth_client/pkg.CommitHash=$$ (git rev-parse HEAD)'"
35+ GOOS=openbsd GOARCH=amd64 go build -o ./bin/${BINARY} _${VERSION} _openbsd_amd64 -ldflags " -X 'keyfactor_auth_client/pkg.Version=${VERSION} ' -X 'keyfactor_auth_client/pkg.BuildTime=$$ (date)' -X 'keyfactor_auth_client/pkg.CommitHash=$$ (git rev-parse HEAD)'"
36+ GOOS=solaris GOARCH=amd64 go build -o ./bin/${BINARY} _${VERSION} _solaris_amd64 -ldflags " -X 'keyfactor_auth_client/pkg.Version=${VERSION} ' -X 'keyfactor_auth_client/pkg.BuildTime=$$ (date)' -X 'keyfactor_auth_client/pkg.CommitHash=$$ (git rev-parse HEAD)'"
37+ GOOS=windows GOARCH=386 go build -o ./bin/${BINARY} _${VERSION} _windows_386 -ldflags " -X 'keyfactor_auth_client/pkg.Version=${VERSION} ' -X 'keyfactor_auth_client/pkg.BuildTime=$$ (date)' -X 'keyfactor_auth_client/pkg.CommitHash=$$ (git rev-parse HEAD)'"
38+ GOOS=windows GOARCH=amd64 go build -o ./bin/${BINARY} _${VERSION} _windows_amd64 -ldflags " -X 'keyfactor_auth_client/pkg.Version=${VERSION} ' -X 'keyfactor_auth_client/pkg.BuildTime=$$ (date)' -X 'keyfactor_auth_client/pkg.CommitHash=$$ (git rev-parse HEAD)'"
39+
40+ install : fmt
41+ go build -o ${BINARY}
42+ rm -rf ${INSTALLDIR} /${BINARY}
43+ mkdir -p ${INSTALLDIR}
44+ chmod oug+x ${BINARY}
45+ cp ${BINARY} ${INSTALLDIR}
46+ mkdir -p ${HOME} /.local/bin || true
47+ mv ${BINARY} ${HOME} /.local/bin/${BINARY}
48+
49+ vendor :
50+ go mod vendor
51+
52+ version :
53+ @echo ${VERSION}
54+
55+ setversion :
56+ sed -i ' ' -e ' s/VERSION = ".*"/VERSION = "$(VERSION)"/' pkg/version/version.go
57+
58+ test :
59+ go test -i $(TEST ) || exit 1
60+ echo $(TEST ) | xargs -t -n4 go test $(TESTARGS ) -timeout=30s -parallel=4
61+
62+ fmt :
63+ gofmt -w $(GOFMT_FILES )
64+
65+ prerelease : fmt setversion
66+ git tag -d $(VERSION ) || true
67+ git push origin :$(VERSION ) || true
68+ git tag $(VERSION )
69+ git push origin $(VERSION )
70+
71+ check_toc :
72+ @grep -q ' TOC_START' $(MARKDOWN_FILE ) && echo " TOC already exists." || (echo " TOC not found. Generating..." && $( MAKE) generate_toc)
73+
74+ generate_toc :
75+ # check if markdown-toc is installed and if not install it
76+ @command -v markdown-toc > /dev/null 2>&1 || (echo " markdown-toc is not installed. Installing..." && npm install -g markdown-toc)
77+ markdown-toc -i $(MARKDOWN_FILE ) --skip ' Table of Contents'
78+
79+
80+ .PHONY : build prerelease release install test fmt vendor version setversion
0 commit comments