set positional-arguments

run *args:
    cargo run -- "$@"

build:
    cargo build

build-release:
    cargo build --release

build-production:
    cargo build --profile production

web-build:
    cargo build --profile production --target wasm32-unknown-unknown
    cp target/wasm32-unknown-unknown/production/tdkpin-rs.wasm web/tdkpin-rs.wasm

web-serve: web-build
    python3 -m http.server 8000 --directory web

highscore-server:
    cargo run --manifest-path highscore-server/Cargo.toml

test-highscore-server:
    cargo test --manifest-path highscore-server/Cargo.toml

clippy-highscore-server:
    cargo clippy --manifest-path highscore-server/Cargo.toml --all-targets --all-features -- -D warnings

fmt:
    cargo +nightly fmt
    tombi format
    fd -tf -e md -x prettier --write --prose-wrap always --print-width 80
    rumdl check --flavor commonmark --fix
    just --fmt

_fix:
    cargo fix --workspace --all-targets --all-features
    cargo clippy --fix --workspace --all-targets --all-features

fix: _fix fmt

clippy: clippy-highscore-server
    cargo clippy --workspace --all-targets --all-features -- -D warnings

test: test-highscore-server
    cargo test --workspace --all-targets --all-features

clean:
    cargo clean
