Makefile (2505B)
1 PKGS = $(shell go list ./... | grep -v /vendor/ | grep -v /bindata) 2 VERSION = $(shell git describe) 3 VERSION64 = $(shell git describe | base64) 4 SHA = $(shell git rev-parse HEAD) 5 PWD = $(shell pwd) 6 7 SELF_HOST_FLAGS = -ldflags "-s -w -X main.version=$(VERSION64) -X main.versionVoid=${VERSION} -X main.sha=$(SHA) -X main.development=0" 8 9 WINDOWS_ENVS = GOOS="windows" GOARCH="amd64" CGO_ENABLED="1" CC="/usr/local/opt/mingw-w64/bin/x86_64-w64-mingw32-gcc" 10 WINDOWS_FILENAME = snb.$(VERSION).windows.amd64.exe 11 12 LINUX_ENVS = GOOS="linux" GOARCH="amd64" CGO_ENABLED="1" 13 LINUX_FILENAME = dkf.$(VERSION).linux.amd64 14 15 build-docker-bin: bindata-prod 16 docker run --rm -it -v $(PWD):/root/dkf -w /root/dkf $(DOCKER_IMG) sh -c \ 17 '$(ENVS) go build --tags "fts5" -gcflags=all=-trimpath=$(GOPATH) $(SELF_HOST_FLAGS) -o dist/$(FILENAME) cmd/dkf/main.go' 18 19 build-linux: ENVS=$(LINUX_ENVS) 20 build-linux: DOCKER_IMG=golang:1.19-buster 21 build-linux: FILENAME=$(LINUX_FILENAME) 22 build-linux: build-docker-bin tar-file clean-file build-checksum 23 24 tar-file: 25 tar -czvf dist/$(FILENAME).tar.gz dist/$(FILENAME) 26 27 zip-file: 28 zip dist/$(FILENAME).zip dist/$(FILENAME) 29 30 build-checksum: 31 openssl dgst -sha256 dist/$(FILENAME).tar.gz | cut -d ' ' -f 2 > dist/$(FILENAME).tar.gz.checksum 32 33 build-checksum-zip: 34 openssl dgst -sha256 dist/$(FILENAME).zip | cut -d ' ' -f 2 > dist/$(FILENAME).zip.checksum 35 36 clean-file: 37 rm dist/$(FILENAME) 38 39 clean-dist: 40 rm -fr ./dist 41 42 test: 43 @go test $(PKGS) 44 45 bindata: 46 go-bindata $(DEBUG) -pkg bindata -o bindata/bindata.go -prefix "pkg/web/public/" pkg/web/public/... 47 48 bindata-dev: DEBUG=-debug 49 bindata-dev: bindata 50 51 bindata-prod: DEBUG= 52 bindata-prod: bindata 53 54 scp-master: FILENAME=$(LINUX_FILENAME) 55 scp-master: 56 scp -pr dist/$(FILENAME).tar.gz dkf:/home/dkf 57 58 extract-master: FILENAME=$(LINUX_FILENAME) 59 extract-master: 60 ssh dkf 'cd /home/dkf && tar -xvz -f$(FILENAME).tar.gz && cp ./dist/darkforest ./dist/darkforest_prev && mv ./dist/$(FILENAME) ./dist/darkforest && rm $(FILENAME).tar.gz' 61 62 rollback-master: 63 ssh dkf 'cd /home/dkf && mv ./dist/darkforest_prev ./dist/darkforest' 64 65 restart-master: 66 ssh dkf 'service dkf restart' 67 68 deploy-master: clean-dist build-linux scp-master extract-master restart-master 69 70 rollback: rollback-master restart-master 71 72 serve: 73 air 74 75 count: 76 @find \ 77 ./pkg \ 78 ./scripts \ 79 -name '*.go' \ 80 | xargs wc -l \ 81 | sort 82 83 size: 84 @find \ 85 ./pkg \ 86 ./scripts \ 87 -name '*.go' \ 88 | xargs du -sch 89 90 .PHONY: serve bindata bindata-dev