ARGS ?= "todo.txt"

.PHONY: all run test build fmt lint check pre-commit publish-check help

all: check

run: build
	@cargo run -- $(ARGS)

build:
	@cargo build --release

test:
	@cargo test

fmt:
	@cargo fmt

lint:
	@cargo clippy -- -D warnings

check: fmt lint test

pre-commit: check

publish-check:
	@cargo publish --dry-run

help:
	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "  \033[36m%-15s\033[0m %s\n", $$1, $$2}'