A better Rust ATProto crate
at main 2.3 kB view raw
1default: 2 @just --list 3 4# Run pre-commit hooks on all files, including autoformatting 5pre-commit-all: 6 pre-commit run --all-files 7 8# Run 'cargo run' on the project 9run *ARGS: 10 cargo run {{ARGS}} 11 12# Run 'bacon' to run the project (auto-recompiles) 13watch *ARGS: 14 bacon --job run -- -- {{ ARGS }} 15 16update-api: 17 cargo run -p jacquard-lexicon --bin lex-fetch -- -v 18 19generate-api: 20 cargo run -p jacquard-lexicon --bin jacquard-codegen -- -i crates/jacquard-api/lexicons -o crates/jacquard-api/src -r crate 21 22lex-gen *ARGS: 23 cargo run -p jacquard-lexicon --bin lex-fetch -- {{ARGS}} 24 25lex-fetch *ARGS: 26 cargo run -p jacquard-lexicon --bin lex-fetch -- --no-codegen {{ARGS}} 27 28codegen *ARGS: 29 cargo run -p jacquard-lexicon --bin jacquard-codegen -- -r crate {{ARGS}} 30 31# List all available examples 32examples: 33 #!/usr/bin/env bash 34 echo "jacquard examples:" 35 for file in "examples"/*.rs; do 36 name=$(basename "$file" .rs) 37 echo " - $name" 38 done 39 echo "" 40 echo "jacquard-axum examples:" 41 cargo metadata --format-version=1 --no-deps | \ 42 jq -r '.packages[] | select(.name == "jacquard-axum") | .targets[] | select(.kind[] == "example") | .name' | \ 43 sed 's/^/ - /' 44 echo "" 45 echo "Usage: just example <name> [ARGS...]" 46 47# Run an example by name (auto-detects package) 48example NAME *ARGS: 49 #!/usr/bin/env bash 50 if [ -f "examples/{{NAME}}.rs" ]; then 51 cargo run -p jacquard --features=api_bluesky --example {{NAME}} -- {{ARGS}} 52 elif cargo metadata --format-version=1 --no-deps | \ 53 jq -e '.packages[] | select(.name == "jacquard-axum") | .targets[] | select(.kind[] == "example" and .name == "{{NAME}}")' > /dev/null; then 54 cargo run -p jacquard-axum --example {{NAME}} -- {{ARGS}} 55 else 56 echo "Example '{{NAME}}' not found." 57 echo "" 58 echo "jacquard examples:" 59 for file in "examples"/*.rs; do 60 name=$(basename "$file" .rs) 61 echo " - $name" 62 done 63 echo "" 64 echo "jacquard-axum examples:" 65 cargo metadata --format-version=1 --no-deps | \ 66 jq -r '.packages[] | select(.name == "jacquard-axum") | .targets[] | select(.kind[] == "example") | .name' | \ 67 sed 's/^/ - /' 68 exit 1 69 fi