Makefile RawHistoryFolder
1.PHONY: install test test-installer lint mocks demo
2
3install:
4 go install .
5 @bin="$$(go env GOBIN)"; \
6 if [ -z "$$bin" ]; then bin="$$(go env GOPATH)/bin"; fi; \
7 mkdir -p "$$bin"; \
8 install -m 0755 scripts/vev-bar-top-right scripts/vev-bar-bottom-right "$$bin"
9
10test:
11 go test ./... -race
12
13test-installer:
14 sh scripts/install_platform_test.sh
15
16lint:
17 @test -z "$$(goimports -l .)"
18 go vet ./...
19
20mocks:
21 @version="$$(mockery version 2>/dev/null || true)"; \
22 if [ "$$version" != "v3.7.1" ]; then \
23 echo "mockery v3.7.1 required; install with: go install github.com/vektra/mockery/v3@v3.7.1" >&2; \
24 exit 1; \
25 fi
26 mockery
27
28demo:
29 docker build -f scripts/demo/Dockerfile -t vev-demo .
30 ./scripts/demo/run.sh demo.tape
31 # vhs cannot emit a transparent margin, so cut the window out after the
32 # fact: everything outside the rounded window rect becomes GIF
33 # transparency. The geometry mirrors demo.tape (1200x750 canvas, margin
34 # 20, border radius 10); keep them in sync.
35 docker run --rm --entrypoint magick -v "$(CURDIR)/scripts/demo/out:/out" vev-demo \
36 -size 1200x750 xc:black -fill white \
37 -draw "roundrectangle 20,20 1179,729 10,10" /out/mask.png
38 # The 2px edge is stroked before the mask is applied so the mask clips the
39 # stroke's antialiased overflow; drawing it after would leave partly
40 # transparent pixels, which a GIF's 1-bit alpha cannot represent.
41 docker run --rm --entrypoint magick -v "$(CURDIR)/scripts/demo/out:/out" vev-demo \
42 -limit memory 8GiB -limit map 12GiB /out/demo.gif -coalesce \
43 -fill none -stroke "#30363D" -strokewidth 2 \
44 -draw "roundrectangle 21,21 1178,728 9,9" \
45 null: \( /out/mask.png -alpha off \) -compose CopyOpacity \
46 -layers composite /out/demo-masked.gif
47 # --lossy above 30 smears the near-identical darks of the window chrome
48 # (window bar vs terminal background) into visible banding, and the
49 # conserve-memory fallback for huge inputs roughly doubles the output.
50 docker run --rm --entrypoint gifsicle -v "$(CURDIR)/scripts/demo/out:/out" vev-demo --no-conserve-memory -O3 --lossy=30 -o /out/demo.gif /out/demo-masked.gif
51 rm scripts/demo/out/demo-masked.gif scripts/demo/out/mask.png
52 mkdir -p docs/assets
53 cp scripts/demo/out/demo.gif docs/assets/demo.gif