Makefile

 1BINDIR := $(or $(XDG_BIN_HOME),$(XDG_BIN_DIR),$(HOME)/.local/bin)
 2JJ_FIX := jj --config 'fix.tools.rustfmt.command=["rustfmt","--emit","stdout","--edition","2021"]' --config 'fix.tools.rustfmt.patterns=["glob:**/*.rs"]' fix
 3
 4.PHONY: all check test fmt clippy verify install
 5
 6all: fmt check test
 7
 8verify:
 9	@$(JJ_FIX)
10	@out=$$(cargo check --quiet 2>&1) || { printf '%s\n' "$$out"; exit 1; }; echo '✓ check'
11	@out=$$(cargo clippy --quiet -- -D warnings 2>&1) || { printf '%s\n' "$$out"; exit 1; }; echo '✓ clippy'
12	@out=$$(cargo test --quiet 2>&1) || { printf '%s\n' "$$out"; exit 1; }; echo '✓ tests'
13
14check:
15	@cargo check --quiet
16	@cargo clippy --quiet -- -D warnings
17
18test:
19	@cargo test --quiet
20
21fmt:
22	@$(JJ_FIX)
23
24clippy:
25	@cargo clippy --quiet -- -D warnings
26
27install:
28	cargo build --release --quiet
29	install -Dm755 target/release/td "$(BINDIR)/td"