forked from keybase/client
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Makefile
100 lines (79 loc) · 2.41 KB
/
Makefile
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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
GO15VENDOREXPERIMENT=1
COVERWEB=go tool cover -html=/tmp/count.out
fmt:
go fmt ./...
vet:
go vet ./...
# KBFS uses stricter linting than client, so the errors that should be
# filtered only for non-kbfs files must use perl regexes, and start
# with "^((?!kbfs))".
lint:
( \
which golint >/dev/null 2>&1 \
|| ( \
echo "Missing golint" \
&& exit 1 \
) \
) \
&& ( \
golint ./... \
| grep -v ^vendor \
| grep -v "protocol[\/\\]" \
| grep -v -P -e '^((?!kbfs)).*comment' \
| grep -v KeysById \
| grep -v "error should be the last type" \
| grep -v -P -e '^((?!kbfs)).*stutters' \
| grep -v -P -e '^((?!kbfs)).*error strings should not be capitalized' \
| grep -v prot.go \
| grep -v -P -e '^((?!kbfs)).*redundant if ...; err != nil check, just return error instead' \
| grep -v -P -e '^((?!kbfs)).*use ALL_CAPS in Go names; use CamelCase' \
| grep -v runquiet.go \
| grep -v mocks_test\.go \
| grep -v mock_codec\.go \
| grep -v "use underscores in Go names" \
&& exit 1 \
|| echo "Lint-free!" \
)
# to run splint, first do this: go get stathat.com/c/splint
splint:
splint -s 100 `find . -name "*.go"`
cover:
go test -covermode=count ./...
test:
test/check_or_start_kbweb.sh
go test ./...
test/pause_kbweb.sh
testclean:
test/nuke_kbweb.sh
coverclient:
$(COVERTEST) ./client
$(COVERWEB)
coverdaemon:
$(COVERTEST) ./daemon
$(COVERWEB)
coverengine:
$(COVERTEST) ./engine
$(COVERWEB)
coverlibcmdline:
$(COVERTEST) ./libcmdline
$(COVERWEB)
coverlibkb:
$(COVERTEST) ./libkb
$(COVERWEB)
coverclean:
rm /tmp/count.out
gen-deps:
./gen_deps.pl
linux-clear-devel-secrets:
secret-tool clear service-base keybase-devel
linux-clear-test-secrets:
secret-tool clear service-base keybase-devel-test
shavendorstellar:
echo "expecting f3a7d9906dab5c481669b5b4f852bf447388bd3d:"
find vendor/github.com/stellar -type f -print0 | sort -z | xargs -0 shasum | shasum
GOLANGCI_RUN_OPT = --color auto
golangci-lint-kbfs:
go list -f '{{.Dir}}' ./kbfs/... | fgrep -v dokan | xargs realpath --relative-to=. | xargs golangci-lint run $(GOLANGCI_RUN_OPT) --deadline 5m0s
golangci-lint-nonkbfs:
go list -f '{{.Dir}}' ./... | fgrep -v protocol | fgrep -v kbfs | xargs realpath --relative-to=. | xargs golangci-lint run $(GOLANGCI_RUN_OPT) --deadline 5m0s
.PHONY: test splint fmt lint vet cover testclean coverclient coverdaemon coverengine coverlibcmdline coverlibkb coverclean shavendorstellar gen-deps