Makefile

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