# List available recipes help: just -l # Run a single copy of the app @run: cargo run # Run four copies of the app in a 2x2 grid @run2x2: cargo build && zellij --layout 2x2-layout.kdl # Run two copies of the app in a 2x1 grid @run2x1: cargo build && zellij --layout 2x1-layout.kdl # Build all targets in debug mode @build: cargo build --release --all-targets # Build all targets in release mode @release: cargo build --release --all-targets # Build documentation for all crates @doc *FLAGS: cargo doc --release --no-deps --workspace {{FLAGS}} # Run the same checks we run in CI @ci: test cargo clippy cargo fmt --check cargo deny check licenses # Get security advisories from cargo-deny @security: cargo deny check advisories # Run tests with nextest @test: cargo nextest run --all-targets # Lint and automatically fix what we can fix @fix: cargo clippy --fix --allow-dirty --allow-staged cargo fmt # Install required linting/testing tools via cargo. @install-tools: cargo install cargo-nextest cargo install cargo-deny # Check for unused dependencies. check-unused: cargo +nightly udeps --all set positional-arguments tailscale *args: #!/usr/bin/env bash set -e if ! hash tailscale 2>/dev/null; then echo This command requires the Tailscale CLI tool to be installed: echo https://tailscale.com/kb/1080/cli/ exit 1 fi ADDR=$(tailscale ip --6 2>/dev/null) if [ "${ADDR}" == "" ]; then echo Tailscale does not have an IPv6 address; aborting. exit 1 fi cargo run -- --interface "${ADDR}" "$@"