dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

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