forked from Tecsisa/foulkon
-
Notifications
You must be signed in to change notification settings - Fork 0
/
GNUmakefile
77 lines (61 loc) · 2.07 KB
/
GNUmakefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
PACKAGES = $(shell go list ./... | grep -v '/vendor/')
VETARGS?=-asmdecl -atomic -bool -buildtags -copylocks -methods \
-nilfunc -printf -rangeloops -shift -structtags -unsafeptr
EXTERNAL_TOOLS=\
golang.org/x/tools/cmd/cover \
golang.org/x/tools/cmd/goimports \
GOFILES_NOVENDOR = $(shell find . -type f -name '*.go' -not -path "./vendor/*")
all: test vet
dev: generate format imports
@FOULKON_DEV=1 sh -c "'$(PWD)/scripts/build.sh'"
deps:
curl https://glide.sh/get | sh
glide install
bin: generate format imports
@sh -c "'$(PWD)/scripts/build.sh'"
release:
@$(MAKE) bin
generate:
@echo "--> Running go generate"
@go generate $(PACKAGES)
format:
@echo "--> Running go fmt" ; \
if [ -n "`go fmt ${PACKAGES}`" ]; then \
echo "[FMT] go fmt updated formatting. Please commit formatted code first."; \
exit 1; \
fi
imports:
@echo "--> Running goimports" ; \
if [ -n "`goimports -l ${GOFILES_NOVENDOR}`" ]; then \
echo "[IMPORTS] go imports found incorrect imports format. Please check these files:"; \
echo "`goimports -l ${GOFILES_NOVENDOR}`"; \
exit 1; \
fi
test: generate format imports
@sh -c "'$(PWD)/scripts/test.sh'"
vet:
@go tool vet 2>/dev/null ; if [ $$? -eq 3 ]; then \
go get golang.org/x/tools/cmd/vet; \
fi
@echo "--> Running go tool vet"
@go tool vet $(VETARGS) ${GOFILES_NOVENDOR} ; if [ $$? -eq 1 ]; then \
echo ""; \
echo "[VET] Vet found suspicious constructs. Please check the reported constructs"; \
echo "and fix them if necessary before submitting the code for review."; \
echo ""; \
fi
@git grep -n `echo "log"".Print"` | grep -v 'vendor/' ; if [ $$? -eq 0 ]; then \
echo "[LINT] Found "log"".Printf" calls. These should use foulkon's logger instead."; \
echo ""; \
fi
changelog:
github_changelog_generator
# bootstrap the build by downloading additional tools
bootstrap: deps
@for tool in $(EXTERNAL_TOOLS) ; do \
echo "Installing $$tool" ; \
go get $$tool; \
done
travis:
@sh -c "'$(PWD)/scripts/travis.sh'"
.PHONY: all dev deps bin release generate format imports test vet bootstrap travis