[package]
name = "cursus-bin"
version.workspace = true
edition.workspace = true
license.workspace = true

description = "Release management CLI for polyglot projects"
documentation = "https://zantarix.github.io/cursus/"
homepage = "https://zantarix.github.io/cursus/"
repository = "https://github.com/zantarix/cursus"
readme = "../../README.md"

[[bin]]
name = "cursus"
path = "src/main.rs"

[dependencies]
cursus = { path = "../cursus", version = "=0.8.0" }
anyhow = "=1.0.102"
clap = { version = "=4.6.1", features = ["derive"] }
gitlab = "=0.1811.0"
log = "=0.4.29"
mutants = "=0.0.4"
octocrab = { version = "=0.51.0", default-features = false, features = ["follow-redirect", "retry", "rustls", "timeout", "tracing", "default-client", "rustls-aws-lc-rs", "jwt-rust-crypto"] }
# Brought in as a direct dep so we can install the rustls process-default
# CryptoProvider explicitly at startup (defensive: keeps a single deterministic
# provider even if future dep changes accidentally link a second one).
rustls = { version = "=0.23.40", default-features = false, features = ["aws-lc-rs"] }
sys-locale = "=0.3.2"
tokio = { version = "=1.52.3", default-features = false, features = ["rt-multi-thread", "macros"] }

[features]
default = ["nix-tests"]
nix-tests = []
# Exists so `cargo mutants --features test-support` does not error on this crate.
test-support = []

[dev-dependencies]
cursus = { path = "../cursus", version = "=0.8.0", features = ["test-support"], default-features = false }
tempfile = "=3.27.0"
tokio = { version = "=1.52.3", features = ["rt-multi-thread", "macros"] }

[lints]
workspace = true

[package.metadata.binstall]
pkg-fmt = "bin"

[package.metadata.binstall.overrides.x86_64-unknown-linux-musl]
pkg-url = "https://github.com/zantarix/cursus/releases/download/cursus@{ version }/cursus-linux-x86_64"

[package.metadata.binstall.overrides.aarch64-unknown-linux-musl]
pkg-url = "https://github.com/zantarix/cursus/releases/download/cursus@{ version }/cursus-linux-aarch64"

[package.metadata.binstall.overrides.riscv64gc-unknown-linux-musl]
pkg-url = "https://github.com/zantarix/cursus/releases/download/cursus@{ version }/cursus-linux-riscv64gc"

[package.metadata.binstall.overrides.x86_64-apple-darwin]
pkg-url = "https://github.com/zantarix/cursus/releases/download/cursus@{ version }/cursus-osx-x86_64"

[package.metadata.binstall.overrides.aarch64-apple-darwin]
pkg-url = "https://github.com/zantarix/cursus/releases/download/cursus@{ version }/cursus-osx-aarch64"

[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-url = "https://github.com/zantarix/cursus/releases/download/cursus@{ version }/cursus-windows-x86_64.exe"

[package.metadata.binstall.overrides.aarch64-pc-windows-msvc]
pkg-url = "https://github.com/zantarix/cursus/releases/download/cursus@{ version }/cursus-windows-aarch64.exe"

[package.metadata.binstall.overrides.x86_64-unknown-linux-gnu]
pkg-url = "https://github.com/zantarix/cursus/releases/download/cursus@{ version }/cursus-linux-x86_64"

[package.metadata.binstall.overrides.aarch64-unknown-linux-gnu]
pkg-url = "https://github.com/zantarix/cursus/releases/download/cursus@{ version }/cursus-linux-aarch64"

[package.metadata.binstall.overrides.riscv64gc-unknown-linux-gnu]
pkg-url = "https://github.com/zantarix/cursus/releases/download/cursus@{ version }/cursus-linux-riscv64gc"
