lens @ 9ba05d26ee2382f3191e25ae7af5d462ba2a35e4

 1BIN=img
 2OUT=./bin/$(BIN)
 3SERVER=./cmd/server/main.go
 4
 5GO_TEST=go test -v -timeout 100ms -shuffle on -parallel `nproc`
 6GO_BUILD=go build -v
 7GO_RUN=go run -v
 8
 9all: build sass
10
11build:
12	$(GO_BUILD) -o $(OUT) $(SERVER)
13
14run: sass
15	$(GO_RUN) $(SERVER)
16
17sass:
18	@mkdir -p static
19	sassc \
20		-I scss scss/main.scss static/main.css \
21		--style compressed
22
23test: test.unit test.integration
24
25test.all: gci test.unit test.integration lint
26
27test.integration:
28	$(GO_TEST) -tags=integration ./...
29
30test.unit:
31	$(GO_TEST) -tags=unit ./...
32
33gen:
34	go run -v \
35		./cmd/ggen/...
36
37cover.%:
38	$(GO_TEST) \
39		-tags=$* \
40		-coverprofile=bin/cover \
41		./...
42	go tool cover \
43		-html=bin/cover \
44		-o bin/cover.html
45	echo "open bin/cover.html"
46
47lint:
48	golangci-lint run \
49	--fix \
50	--config golangci.yml \
51	--verbose \
52	./...
53
54gci:
55	find . \
56		-type f \
57		-name "*.go" \
58		-not -path "./vendor/*" \
59		-exec gci write -s standard -s default -s "prefix(git.sr.ht/~gabrielgio/img)" {} +