alias fmt := format head := `git rev-parse HEAD` _default: @just --list # Auto-format source code. format: cargo fmt --all env RUST_LOG=warn taplo format find . -type f -iname justfile -print0 | xargs -0rn 1 just --fmt --unstable --justfile find . -type f -name '*.nix' -print0 | xargs -0rn 1 nixfmt # Run all checks. check: @# Check format cargo fmt --all --check env RUST_LOG=warn taplo format --check find . -type f -iname justfile -print0 | xargs -0rn 1 just --fmt --unstable --check --justfile @# nix fmt -- --ci # treefmt --ci is not read-only find . -type f -name '*.nix' -print0 | xargs -0rn 1 nixfmt --check @# Lint env RUST_LOG=warn taplo lint cargo clippy --workspace --all-targets --all-features -- --deny warnings @# Build cargo build --workspace --all-targets --all-features env RUSTDOCFLAGS="-Dwarnings" cargo doc --all-features --no-deps --document-private-items @# Test cargo test --workspace --all-targets --all-features @# Check dependencies for known security vulnerabilities, licenses, etc. cargo audit cargo deny --workspace --all-features check --show-stats bans licenses sources @# Check Nix flake nix flake check --print-build-logs --verbose cd examples/nixos/ && nix flake check --print-build-logs --verbose --override-input temp-postgres ../.. # Update Nix flake inputs, and Rust dependencies. update: @# Update Nix flake inputs. git diff --stat --exit-code nix flake update nix develop --command just check git diff --stat --exit-code -- . ':(exclude)flake.lock' git diff --no-patch --exit-code flake.lock || git commit --message 'Update Nix flake inputs' flake.lock @# Update Rust dependencies. git diff --stat --exit-code nix develop --command cargo upgrade nix develop --command cargo update nix develop --command just check git diff --stat --exit-code -- . ':(exclude)Cargo.toml' ':(exclude)Cargo.lock' git diff --no-patch --exit-code Cargo.lock || git commit --message 'Update Rust dependencies' Cargo.toml Cargo.lock @# Show commits. git --no-pager log --stat {{ head }}..