[package]
name = "cutler"
version = "0.19.6"
edition = "2024"
description = "Powerful, declarative settings management for your Mac, with speed."
homepage = "https://machlit.github.io/cutler"
repository = "https://github.com/machlit/cutler"
keywords = ["macos", "macos-automation", "cutler", "declarative-settings"]
readme = "README.md"
license = "MIT OR Apache-2.0"
authors = ["Machlit"]
categories = ["command-line-utilities"]

[dependencies]
toml = "0.9"
toml_edit = "0.24"
clap = { version = "4", features = ["derive"] }
clap_complete = "4.5.65"
serde_json = "1.0.149"
serde = { version = "1.0", features = ["derive"] }
semver = "1.0.27"
anyhow = "1.0.100"
tokio = { version = "1", features = ["full"] }
anstyle = "1.0.13"
dialoguer = "0.12.0"
self_update = { version = "0.42.0", features = ["archive-tar", "compression-flate2"] }
async-trait = "0.1.89"
defaults-rs = { version = "1.2.2", default-features = false }
nix = { version = "0.30.1", features = ["user"] }
reqwest = { version = "0.12", features = [
    "json",
    "rustls-tls",
], default-features = false }
which = "8.0.0"
dirs = "6.0.0"
once_cell = "1.21.3"
shell-words = "1.1.1"
regex = "1.12.2"
sha2 = "0.10.9"

[dev-dependencies]
tempfile = "3.24.0"

[workspace]
members = [".", "xtask"]

[lints.clippy]
unwrap_used = "deny"
expect_used = "deny"
unreachable = "deny"
must_use_candidate = "warn"

[lints.rust]
unused_must_use = "deny"

[profile.release]
lto = "thin"
