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