summaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
authorSandro Santilli <strk@kbt.io>2017-06-06 15:53:16 +0200
committerBo-Yi Wu <appleboy.tw@gmail.com>2017-06-06 08:53:16 -0500
commitf6b58964d70f7a66ab0ef9affc03a2320b4abd22 (patch)
treefc1deeb542c69ac5fddbf824f2f8673ce11d1331 /Makefile
parent6ec07a6bd7d1f88f0685efa4e1b62a32cbb25e43 (diff)
downloadgitea-f6b58964d70f7a66ab0ef9affc03a2320b4abd22.tar.gz
gitea-f6b58964d70f7a66ab0ef9affc03a2320b4abd22.zip
Include formatting check to the `make test` (and thus also `check`) rule (#1366)
* Include formatting check to the `make check` rule ... and give it its own standalone target too (make fmt-check) Show diff on fmt-check failure Do not allow running "fmt-check" with incompatible go version Also simplify the `fmt` rule * Forbid running "make fmt" with Go version != 1.7 or 1.8 * Ignore bindata.go for spelling and formatting checks also remove duplicated variable assignment for GOFILES * Run `make fmt`
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile22
1 files changed, 18 insertions, 4 deletions
diff --git a/Makefile b/Makefile
index 2566677d68..0b9935fc05 100644
--- a/Makefile
+++ b/Makefile
@@ -4,6 +4,8 @@ BINDATA := modules/{options,public,templates}/bindata.go
STYLESHEETS := $(wildcard public/less/index.less public/less/_*.less)
JAVASCRIPTS :=
DOCKER_TAG := gitea/gitea:latest
+GOFILES := $(shell find . -name "*.go" -type f -not -path "./vendor/*" -not -path "*/bindata.go")
+GOFMT ?= gofmt -s
GOFLAGS := -i -v
EXTRA_GOFLAGS ?=
@@ -12,7 +14,6 @@ LDFLAGS := -X "main.Version=$(shell git describe --tags --always | sed 's/-/+/'
PACKAGES ?= $(filter-out code.gitea.io/gitea/integrations,$(shell go list ./... | grep -v /vendor/))
SOURCES ?= $(shell find . -name "*.go" -type f)
-GOFILES := $(shell find . -name "*.go" -type f -not -path "./vendor/*")
TAGS ?=
@@ -42,9 +43,12 @@ clean:
go clean -i ./...
rm -rf $(EXECUTABLE) $(DIST) $(BINDATA)
+required-gofmt-version:
+ @go version | grep -q '\(1.7\|1.8\)' || { echo "We require go version 1.7 or 1.8 to format code" >&2 && exit 1; }
+
.PHONY: fmt
-fmt:
- find . -name "*.go" -type f -not -path "./vendor/*" | xargs gofmt -s -w
+fmt: required-gofmt-version
+ $(GOFMT) -w $(GOFILES)
.PHONY: vet
vet:
@@ -88,8 +92,18 @@ misspell:
fi
misspell -w -i unknwon $(GOFILES)
+.PHONY: fmt-check
+fmt-check: required-gofmt-version
+ # get all go files and run go fmt on them
+ @diff=$$($(GOFMT) -d $(GOFILES)); \
+ if [ -n "$$diff" ]; then \
+ echo "Please run 'make fmt' and commit the result:"; \
+ echo "$${diff}"; \
+ exit 1; \
+ fi;
+
.PHONY: test
-test:
+test: fmt-check
go test $(PACKAGES)
.PHONY: test-coverage