A better Rust ATProto crate
0

Configure Feed

Select the types of activity you want to include in your feed.

at main 3.7 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 tests with default features 9test *ARGS: 10 cargo nextest run {{ ARGS }} 11 12publish: 13 @echo "Running tests..." 14 test-all 15 check-wasm 16 @echo "Publishing..." 17 cargo publish -p jacquard-common 18 cargo publish -p jacquard-lexicon 19 cargo publish -p jacquard-derive 20 cargo publish -p jacquard-identity 21 cargo publish -p jacquard-lexgen 22 cargo publish -p jacquard-api 23 cargo publish -p jacquard-repo 24 cargo publish -p jacquard-oauth 25 cargo publish -p jacquard 26 cargo publish -p jacquard-axum 27 28# Run tests across the full feature matrix 29test-all: 30 @echo "── default ──" 31 cargo nextest run 32 @echo "" 33 @echo "── scope-check ──" 34 cargo nextest run --features scope-check 35 @echo "" 36 @echo "── streaming ──" 37 cargo nextest run --features streaming 38 @echo "" 39 @echo "── websocket ──" 40 cargo nextest run --features websocket 41 42# Run tests with a specific feature set 43test-feature FEATURE *ARGS: 44 cargo nextest run --features {{ FEATURE }} {{ ARGS }} 45 46# Check that jacquard-common compiles for wasm32 47check-wasm: 48 cargo build --target wasm32-unknown-unknown -p jacquard-common --features websocket,reqwest-client 49 cargo build --target wasm32-unknown-unknown -p jacquard --no-default-features --features api_bluesky,streaming 50 51# Run 'cargo run' on the project 52run *ARGS: 53 cargo run {{ ARGS }} 54 55# Run 'bacon' to run the project (auto-recompiles) 56watch *ARGS: 57 bacon --job run -- -- {{ ARGS }} 58 59update-api: 60 cargo run -p jacquard-lexgen --bin lex-fetch -- -v 61 62generate-api: 63 cargo run -p jacquard-lexgen --bin jacquard-codegen -- -i crates/jacquard-api/lexicons -o crates/jacquard-api/src 64 65lex-gen *ARGS: 66 cargo run -p jacquard-lexgen --bin lex-fetch -- {{ ARGS }} 67 68lex-fetch *ARGS: 69 cargo run -p jacquard-lexgen --bin lex-fetch -- --no-codegen {{ ARGS }} 70 71codegen *ARGS: 72 cargo run -p jacquard-lexgen --bin jacquard-codegen -- {{ ARGS }} 73 74# Package binaries for distribution (creates tar.xz archives) 75package-binaries: 76 ./scripts/package-binaries.sh 77 78# List all available examples 79examples: 80 #!/usr/bin/env bash 81 echo "jacquard examples:" 82 for file in "examples"/*.rs; do 83 name=$(basename "$file" .rs) 84 echo " - $name" 85 done 86 echo "" 87 echo "jacquard-axum examples:" 88 cargo metadata --format-version=1 --no-deps | \ 89 jq -r '.packages[] | select(.name == "jacquard-axum") | .targets[] | select(.kind[] == "example") | .name' | \ 90 sed 's/^/ - /' 91 echo "" 92 echo "Usage: just example <name> [ARGS...]" 93 94# Run an example by name (auto-detects package) 95example NAME *ARGS: 96 #!/usr/bin/env bash 97 if [ -f "examples/{{ NAME }}.rs" ]; then 98 cargo run -p jacquard --features=api_bluesky,streaming --example {{ NAME }} -- {{ ARGS }} 99 elif cargo metadata --format-version=1 --no-deps | \ 100 jq -e '.packages[] | select(.name == "jacquard-axum") | .targets[] | select(.kind[] == "example" and .name == "{{ NAME }}")' > /dev/null; then 101 cargo run -p jacquard-axum --example {{ NAME }} -- {{ ARGS }} 102 else 103 echo "Example '{{ NAME }}' not found." 104 echo "" 105 echo "jacquard examples:" 106 for file in "examples"/*.rs; do 107 name=$(basename "$file" .rs) 108 echo " - $name" 109 done 110 echo "" 111 echo "jacquard-axum examples:" 112 cargo metadata --format-version=1 --no-deps | \ 113 jq -r '.packages[] | select(.name == "jacquard-axum") | .targets[] | select(.kind[] == "example") | .name' | \ 114 sed 's/^/ - /' 115 exit 1 116 fi