[package]
name = "ctl-core"
version = "0.1.0"
edition = "2024"
rust-version = "1.97.1"
description = "Shared clap chassis for the *ctl CLIs"
license = "MIT"
repository = "https://github.com/victor-software-house/ctl-core"
homepage = "https://github.com/victor-software-house/ctl-core"
readme = "README.md"
keywords = ["clap", "cli", "help", "color"]
categories = ["command-line-interface", "development-tools"]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[package.metadata.cargo-machete]
ignored = ["usage-lib"]
[lints.rust]
unsafe_code = "forbid"
missing_docs = "deny"
rust_2018_idioms = { level = "deny", priority = -1 }
[lints.rustdoc]
broken_intra_doc_links = "deny"
private_intra_doc_links = "deny"
invalid_html_tags = "deny"
invalid_codeblock_attributes = "deny"
[lints.clippy]
all = { level = "deny", priority = -1 }
pedantic = { level = "deny", priority = -1 }
cargo = { level = "deny", priority = -1 }
dbg_macro = "deny"
todo = "deny"
unimplemented = "deny"
unwrap_used = "deny"
expect_used = "deny"
disallowed_macros = "deny"
[features]
default = ["cli", "view", "help"]
cli = ["dep:clap", "dep:anyhow"]
color = ["dep:anstream", "dep:anstyle"]
json = ["dep:serde", "dep:serde_json"]
schema = ["json", "dep:schemars"]
help = ["cli", "color", "dep:comfy-table"]
view = ["color", "json", "dep:minijinja", "dep:comfy-table"]
usage = ["cli", "dep:usage-lib"]
[dependencies]
anyhow = { version = "1.0.104", optional = true }
anstream = { version = "1.0.0", optional = true }
anstyle = { version = "1.0.14", optional = true }
clap = { version = "4.6.6", optional = true, features = ["derive", "env"] }
comfy-table = { version = "8.0.0", optional = true, default-features = false, features = ["custom_styling", "tty"] }
document-features = "0.2.12"
indoc = "2.0.7"
minijinja = { version = "2.24.0", optional = true }
schemars = { version = "1.2.2", optional = true }
serde = { version = "1.0.229", optional = true, features = ["derive"] }
serde_json = { version = "1.0.151", optional = true }
usage-lib = { version = "6.0.0", default-features = false, features = ["clap"], optional = true }
[dev-dependencies]
indoc = "2.0.7"
[profile.release]
codegen-units = 1
lto = "thin"
panic = "abort"
strip = "symbols"