[package]
name          = "runner-run"
version       = "0.12.1"
edition       = "2024"
rust-version  = "1.95"
description   = "Universal project task runner"
documentation = "https://docs.rs/runner-run"
readme        = "README.md"
homepage      = "https://runner.kjanat.dev"
repository    = "https://github.com/kjanat/runner/"
license       = "MIT"
keywords      = ["automation", "build-tool", "cli", "task-runner"]
categories    = ["command-line-utilities", "development-tools"]
build         = "build.rs"
include       = ["/CHANGELOG.md", "/LICENSE*", "/README.md", "/build.rs", "/man", "/schemas", "/src", "/tests"]
default-run   = "runner"
autobins      = false

[[package.metadata.authors]]
name  = "Kaj Kowalski"
email = "info+runner@kajkowalski.nl"

[package.metadata.npm]
name        = "runner-run"
subpkgscope = "@runner-run"
bugs        = { "url" = "https://github.com/kjanat/runner/issues" }
repository  = { "type" = "git", "url" = "git+https://github.com/kjanat/runner.git" }
engines     = { "node" = ">=18" }

[package.metadata.binstall]
pkg-url = "{repo}/releases/download/v{version}/runner-v{version}-{target}{archive-suffix}"
pkg-fmt = "tgz"
bin-dir = "{bin}{binary-ext}"

[lib]
name = "runner"
path = "src/lib.rs"

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

[[bin]]
name              = "run"
path              = "src/bin/run.rs"
required-features = ["run"]

[dependencies]
actions-rs    = "0.1"
anyhow        = "1"
colored       = "3"
json5         = "1"
semver        = "1"
serde_json    = "1"
shlex         = "2"
terminal_size = "0.4"
unicode-width = "0.2"
yaml-rust2    = "0.11"

[dependencies.clap]
version  = "4"
features = ["cargo", "derive", "env", "string", "wrap_help"]

[dependencies.clap_complete]
version  = "4"
features = ["unstable-dynamic"]

[dependencies.clap_mangen]
version  = "0.3"
optional = true

[dependencies.schemars]
version  = "1.2"
optional = true

[dependencies.serde]
version  = "1"
features = ["derive"]

[dependencies.toml]
version          = "1.1"
default-features = false
features         = ["parse", "serde"]

[build-dependencies.serde]
version  = "1"
features = ["derive"]

[build-dependencies.toml]
version          = "1.1"
default-features = false
features         = ["parse", "serde"]

[features]
default = ["run"]
man     = ["dep:clap_mangen"]
run     = []
schema  = ["dep:schemars"]

[lints.clippy]
all         = { level = "deny", priority = -1 }
cargo       = { level = "deny", priority = -1 }
complexity  = { level = "deny", priority = -1 }
correctness = { level = "deny", priority = -1 }
nursery     = { level = "warn", priority = -1 }
pedantic    = { level = "warn", priority = -1 }
perf        = { level = "warn", priority = -1 }
style       = { level = "warn", priority = -1 }
suspicious  = { level = "warn", priority = -1 }

# individual
multiple_crate_versions = "allow"
redundant_pub_crate     = "allow"

[lints.rust]
elided_lifetimes_in_paths = "warn"
missing_docs              = "warn"
trivial_numeric_casts     = "warn"
unnameable_types          = "warn"
unreachable_pub           = "warn"
unsafe_code               = "deny"
unused_import_braces      = "warn"
unused_lifetimes          = "warn"
unused_qualifications     = "warn"

[lints.rustdoc]
bare_urls                    = "deny"
broken_intra_doc_links       = "deny"
invalid_codeblock_attributes = "deny"
invalid_html_tags            = "deny"
invalid_rust_codeblocks      = "deny"
private_intra_doc_links      = "deny"
redundant_explicit_links     = "warn"
unescaped_backticks          = "warn"

[profile.release]
strip = true
lto   = true
