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"