envoke-cli 1.0.0

Resolve variables from literals, commands, scripts, and templates — output as env vars, .env files, or custom formats
[tools]
cargo-binstall = "latest"
"cargo:cargo-dist" = "latest"
"cargo:cargo-nextest" = "latest"
"cargo:release-plz" = "latest"
jq = "latest"

[tasks.install]
description = "Install the envoke binary"
run = "cargo install --path . --bin envoke"

[tasks.fmt]
description = "Format code"
run = "cargo fmt --all"

[tasks."fmt:check"]
description = "Check code formatting"
run = "cargo fmt --all -- --check"

[tasks."fmt:nightly"]
description = "Format code with nightly"
run = "cargo +nightly fmt --all"

[tasks."fmt:check:nightly"]
description = "Check code formatting with nightly"
run = "cargo +nightly fmt --all -- --check"

[tasks.clippy]
description = "Run clippy lints"
run = "cargo clippy --all-targets --all-features -- -D warnings"

[tasks.test]
description = "Run tests"
run = "cargo nextest run --all-targets"

[tasks.build]
description = "Build release binary"
run = "cargo build --release"

[tasks.schema]
description = "Output JSON Schema to stdout"
run = "cargo run --release -- --schema | jq --sort-keys"

[tasks."schema:write"]
description = "Write JSON Schema to envoke.schema.json"
run = "mise run schema > envoke.schema.json"

[tasks."schema:check"]
description = "Check that envoke.schema.json is up to date"
run = "mise run schema | diff - envoke.schema.json"

[tasks.ci]
description = "Run all CI checks"
depends = ["fmt:check", "clippy", "test", "build", "schema:check"]