@@ -27,7 +27,7 @@ _ensure-cargo-llvm-cov:
2727 set -euo pipefail
2828 installed_version=" "
2929 if command -v cargo-llvm-cov > /dev/null; then
30- installed_version=" $( cargo llvm-cov --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1) "
30+ installed_version=" $( cargo llvm-cov --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1 || true ) "
3131 fi
3232 if [[ " $installed_version " != " {{cargo_llvm_cov_version}}" ]]; then
3333 echo " ❌ 'cargo-llvm-cov' {{cargo_llvm_cov_version}} not found. Install with:"
@@ -40,7 +40,7 @@ _ensure-cargo-nextest:
4040 set -euo pipefail
4141 installed_version=" "
4242 if cargo nextest --version > /dev/null 2>&1 ; then
43- installed_version=" $( cargo nextest --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1) "
43+ installed_version=" $( cargo nextest --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1 || true ) "
4444 fi
4545 if [[ " $installed_version " != " {{cargo_nextest_version}}" ]]; then
4646 echo " ❌ 'cargo-nextest' {{cargo_nextest_version}} not found. Install with:"
@@ -53,7 +53,7 @@ _ensure-dprint:
5353 set -euo pipefail
5454 installed_version=" "
5555 if command -v dprint > /dev/null; then
56- installed_version=" $( dprint --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1) "
56+ installed_version=" $( dprint --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1 || true ) "
5757 fi
5858 if [[ " $installed_version " != " {{dprint_version}}" ]]; then
5959 echo " ❌ 'dprint' {{dprint_version}} not found. Install with:"
@@ -66,7 +66,7 @@ _ensure-git-cliff:
6666 set -euo pipefail
6767 installed_version=" "
6868 if command -v git-cliff > /dev/null; then
69- installed_version=" $( git-cliff --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1) "
69+ installed_version=" $( git-cliff --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1 || true ) "
7070 fi
7171 if [[ " $installed_version " != " {{git_cliff_version}}" ]]; then
7272 echo " ❌ 'git-cliff' {{git_cliff_version}} not found. Install with:"
@@ -84,7 +84,7 @@ _ensure-rumdl:
8484 set -euo pipefail
8585 installed_version=" "
8686 if command -v rumdl > /dev/null; then
87- installed_version=" $( rumdl --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1) "
87+ installed_version=" $( rumdl --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1 || true ) "
8888 fi
8989 if [[ " $installed_version " != " {{rumdl_version}}" ]]; then
9090 echo " ❌ 'rumdl' {{rumdl_version}} not found. Install with:"
@@ -107,7 +107,7 @@ _ensure-taplo:
107107 set -euo pipefail
108108 installed_version=" "
109109 if command -v taplo > /dev/null; then
110- installed_version=" $( taplo --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1) "
110+ installed_version=" $( taplo --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1 || true ) "
111111 fi
112112 if [[ " $installed_version " != " {{taplo_version}}" ]]; then
113113 echo " ❌ 'taplo' {{taplo_version}} not found. Install with:"
@@ -121,7 +121,7 @@ _ensure-typos:
121121 set -euo pipefail
122122 installed_version=" "
123123 if command -v typos > /dev/null; then
124- installed_version=" $( typos --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1) "
124+ installed_version=" $( typos --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1 || true ) "
125125 fi
126126 if [[ " $installed_version " != " {{typos_version}}" ]]; then
127127 echo " ❌ 'typos' {{typos_version}} not found. Install with:"
@@ -139,7 +139,7 @@ _ensure-zizmor:
139139 set -euo pipefail
140140 installed_version=" "
141141 if command -v zizmor > /dev/null; then
142- installed_version=" $( zizmor --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1) "
142+ installed_version=" $( zizmor --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1 || true ) "
143143 fi
144144 if [[ " $installed_version " != " {{zizmor_version}}" ]]; then
145145 echo " ❌ 'zizmor' {{zizmor_version}} not found. Install with:"
@@ -318,13 +318,20 @@ doc-check:
318318
319319# Examples
320320examples :
321- cargo run --quiet --example det_5x5
322- cargo run --quiet --example solve_5x5
323- cargo run --quiet --example ldlt_solve_3x3
324- cargo run --quiet --example const_det_4x4
325- cargo run --quiet --features exact --example exact_det_3x3
326- cargo run --quiet --features exact --example exact_sign_3x3
327- cargo run --quiet --features exact --example exact_solve_3x3
321+ #!/usr/bin/env bash
322+ set -euo pipefail
323+ cargo build --examples
324+ cargo build --features exact --examples
325+
326+ exe_suffix=" "
327+ if [[ " ${OS:- } " == " Windows_NT" ]]; then
328+ exe_suffix=" .exe"
329+ fi
330+
331+ for example in det_5x5 solve_5x5 ldlt_solve_3x3 const_det_4x4 exact_det_3x3 exact_sign_3x3 exact_solve_3x3; do
332+ " target/debug/examples/${example}${exe_suffix} "
333+ done
334+
328335
329336# Fix (mutating): apply formatters/auto-fixes
330337fix : toml-fmt fmt python-fix shell-fmt markdown-fix yaml-fix
@@ -492,35 +499,35 @@ setup-tools:
492499
493500 echo " Ensuring cargo tools..."
494501 cargo_llvm_cov_version=" {{cargo_llvm_cov_version}}"
495- if ! have cargo-llvm-cov || [[ " $( cargo llvm-cov --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1) " != " $cargo_llvm_cov_version " ]]; then
502+ if ! have cargo-llvm-cov || [[ " $( cargo llvm-cov --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1 || true ) " != " $cargo_llvm_cov_version " ]]; then
496503 cargo install --locked cargo-llvm-cov --version " $cargo_llvm_cov_version "
497504 fi
498505 cargo_nextest_version=" {{cargo_nextest_version}}"
499- if ! cargo nextest --version > /dev/null 2>&1 || [[ " $( cargo nextest --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1) " != " $cargo_nextest_version " ]]; then
506+ if ! cargo nextest --version > /dev/null 2>&1 || [[ " $( cargo nextest --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1 || true ) " != " $cargo_nextest_version " ]]; then
500507 cargo install --locked cargo-nextest --version " $cargo_nextest_version "
501508 fi
502509 dprint_version=" {{dprint_version}}"
503- if ! have dprint || [[ " $( dprint --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1) " != " $dprint_version " ]]; then
510+ if ! have dprint || [[ " $( dprint --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1 || true ) " != " $dprint_version " ]]; then
504511 cargo install --locked dprint --version " $dprint_version "
505512 fi
506513 git_cliff_version=" {{git_cliff_version}}"
507- if ! have git-cliff || [[ " $( git-cliff --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1) " != " $git_cliff_version " ]]; then
514+ if ! have git-cliff || [[ " $( git-cliff --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1 || true ) " != " $git_cliff_version " ]]; then
508515 cargo install --locked git-cliff --version " $git_cliff_version "
509516 fi
510517 rumdl_version=" {{rumdl_version}}"
511- if ! have rumdl || [[ " $( rumdl --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1) " != " $rumdl_version " ]]; then
518+ if ! have rumdl || [[ " $( rumdl --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1 || true ) " != " $rumdl_version " ]]; then
512519 cargo install --locked rumdl --version " $rumdl_version "
513520 fi
514521 taplo_version=" {{taplo_version}}"
515- if ! have taplo || [[ " $( taplo --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1) " != " $taplo_version " ]]; then
522+ if ! have taplo || [[ " $( taplo --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1 || true ) " != " $taplo_version " ]]; then
516523 cargo install --locked taplo-cli --version " $taplo_version "
517524 fi
518525 typos_version=" {{typos_version}}"
519- if ! have typos || [[ " $( typos --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1) " != " $typos_version " ]]; then
526+ if ! have typos || [[ " $( typos --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1 || true ) " != " $typos_version " ]]; then
520527 cargo install --locked typos-cli --version " $typos_version "
521528 fi
522529 zizmor_version=" {{zizmor_version}}"
523- if ! have zizmor || [[ " $( zizmor --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1) " != " $zizmor_version " ]]; then
530+ if ! have zizmor || [[ " $( zizmor --version 2> /dev/null | grep -oE ' [0-9]+\.[0-9]+\.[0-9]+' | head -1 || true ) " != " $zizmor_version " ]]; then
524531 cargo install --locked zizmor --version " $zizmor_version "
525532 fi
526533 echo " "
@@ -535,6 +542,11 @@ setup-tools:
535542 exit 1
536543 fi
537544
545+ if ! have jq; then
546+ echo " ❌ 'jq' not found. See 'just setup' or install: brew install jq"
547+ echo " "
548+ fi
549+
538550 echo " "
539551 echo " Verifying required commands are available..."
540552 missing=0
@@ -599,6 +611,8 @@ shell-fmt: _ensure-shfmt
599611
600612shell -lint: shell -check
601613
614+ shell -fix: shell -fmt
615+
602616# Spell check (typos)
603617spell-check : _ensure-typos
604618 #!/usr/bin/env bash
@@ -707,6 +721,10 @@ toml-lint: _ensure-taplo
707721 echo " No TOML files found to lint."
708722 fi
709723
724+ toml-check : toml-fmt-check toml-lint
725+
726+ toml-fix : toml-fmt
727+
710728# File validation
711729validate-json : _ensure-jq
712730 #!/usr/bin/env bash
0 commit comments