diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..305dcd1 --- /dev/null +++ b/Makefile @@ -0,0 +1,43 @@ +ifeq ($(OS),Windows_NT) + SHELL=CMD.EXE + SET=set + DEL=del + NUL=nul +else + SET=export + DEL=rm + NUL=/dev/null +endif + +NAME:=$(notdir $(CURDIR)) +VERSION:=$(shell git describe --tags 2>$(NUL) || echo v0.0.0) +GOOPT:=-ldflags "-s -w -X main.version=$(VERSION)" +EXE:=$(shell go env GOEXE) + +all: + go fmt ./... + $(SET) "CGO_ENABLED=0" && go build $(GOOPT) + +test: + go test -v + +_dist: + $(SET) "CGO_ENABLED=0" && go build $(GOOPT) + zip -9 $(NAME)-$(VERSION)-$(GOOS)-$(GOARCH).zip $(NAME)$(EXE) + +dist: + $(SET) "GOOS=linux" && $(SET) "GOARCH=386" && $(MAKE) _dist + $(SET) "GOOS=linux" && $(SET) "GOARCH=amd64" && $(MAKE) _dist + $(SET) "GOOS=windows" && $(SET) "GOARCH=386" && $(MAKE) _dist + $(SET) "GOOS=windows" && $(SET) "GOARCH=amd64" && $(MAKE) _dist + +clean: + $(DEL) *.zip $(NAME)$(EXE) + +manifest: + make-scoop-manifest *-windows-*.zip > $(NAME).json + +release: + gh release create -d --notes "" -t $(VERSION) $(VERSION) $(wildcard $(NAME)-$(VERSION)-*.zip) + +.PHONY: all test dist _dist clean manifest release