.PHONY: help
help:
@echo "Available targets:"
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-20s\033[0m %s\n", $$1, $$2}'
RUST_VERSION := $(shell grep 'rust-version = ' Cargo.toml | head -1 | sed 's/.*rust-version = "\(.*\)"/\1/')
.PHONY: install-rust
install-rust:
rustup toolchain install $(RUST_VERSION)
rustup component add rustfmt clippy --toolchain $(RUST_VERSION)
.PHONY: check
check:
cargo +$(RUST_VERSION) check
.PHONY: fmt
fmt:
cargo +$(RUST_VERSION) fmt --all
.PHONY: fmt-check
fmt-check:
cargo +$(RUST_VERSION) fmt --all --check
.PHONY: clippy
clippy:
cargo +$(RUST_VERSION) clippy --all-targets -- -D warnings
.PHONY: test
test:
cargo +$(RUST_VERSION) test
.PHONY: test-doc
test-doc:
cargo +$(RUST_VERSION) test --doc
.PHONY: build
build:
cargo +$(RUST_VERSION) build
.PHONY: build-release
build-release:
cargo +$(RUST_VERSION) build --release
.PHONY: doc
doc:
cargo +$(RUST_VERSION) doc --no-deps
.PHONY: doc-open
doc-open:
cargo +$(RUST_VERSION) doc --no-deps --open
.PHONY: clean
clean:
cargo clean
.PHONY: ci
ci: fmt-check clippy test test-doc
.PHONY: pre-commit
pre-commit: fmt clippy test
.PHONY: verify-version
verify-version:
@VERSION=$$(grep '^version = ' Cargo.toml | head -1 | sed 's/.*version = "\(.*\)"/\1/'); \
echo " clocksync version: $$VERSION"; \
EDITION=$$(grep '^edition = ' Cargo.toml | head -1 | sed 's/.*edition = "\(.*\)"/\1/'); \
echo " edition: $$EDITION"; \
RUST_VER=$$(grep '^rust-version = ' Cargo.toml | head -1 | sed 's/.*rust-version = "\(.*\)"/\1/'); \
echo " rust-version: $$RUST_VER"
.PHONY: publish-dry-run
publish-dry-run:
cargo +$(RUST_VERSION) publish --dry-run
.PHONY: publish
publish:
cargo +$(RUST_VERSION) publish
.PHONY: update-deps
update-deps:
cargo update
.PHONY: all
all: ci doc