[package]
default-run = "shepherd"
description = "The canonical shepherd command-line interface over the per-project registry, run artifacts, and sprint pipeline."
name = "shepherd-cli"
authors.workspace = true
categories.workspace = true
edition.workspace = true
homepage.workspace = true
keywords.workspace = true
license.workspace = true
readme = "README.md"
repository.workspace = true
rust-version.workspace = true
version.workspace = true
[lib]
bench = false
[[bin]]
name = "shepherd"
path = "bin/cli.rs"
doc = false
[[test]]
name = "run_store"
required-features = ["std"]
[[test]]
name = "dispatch_store"
required-features = ["std"]
[[test]]
name = "dispatch_service"
required-features = ["std"]
[[test]]
name = "dispatch_cli"
required-features = ["std"]
[[test]]
name = "content_compiler"
required-features = ["std"]
[[test]]
name = "compile_cli"
required-features = ["std"]
[package.metadata.docs.rs]
all-features = false
features = ["full"]
rustc-args = ["--cfg", "docsrs"]
version = "v{{version}}"
[package.metadata.release]
no-dev-version = true
tag-name = "v{{version}}"
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/shepherd-{ version }-{ target }.tar.gz"
bin-dir = "{ bin }{ binary-ext }"
pkg-fmt = "tgz"
disabled-strategies = ["quick-install", "compile"]
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-url = "{ repo }/releases/download/v{ version }/shepherd-{ version }-{ target }.zip"
pkg-fmt = "zip"
[dependencies]
shepherd = { features = [
"config",
"compiler",
"json",
"parse",
"registry",
"render",
"schema",
"tracing",
], workspace = true }
clap = { features = ["cargo", "env", "error-context", "help", "usage"], workspace = true }
anyhow = { workspace = true }
thiserror = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
serde-saphyr = { workspace = true }
sha2 = { workspace = true }
toml = { workspace = true }
glob = { workspace = true }
rusqlite = { workspace = true }
uuid = { features = ["std"], workspace = true }
chrono = { features = ["std"], workspace = true }
tracing = { features = ["log"], workspace = true }
tracing-subscriber = { workspace = true }
[target.'cfg(unix)'.dependencies]
rustix = { features = ["std", "process"], workspace = true }
[features]
default = [
"bundled",
"std",
]
full = [
"default",
"shepherd/full",
]
native = ["full"]
nightly = [
"shepherd/nightly",
]
wasi = [
"bundled",
"shepherd/wasi",
"std",
"wasi-vfs",
]
wasm = [
"shepherd/wasm",
"sqlite-wasm",
"std",
]
alloc = [
"serde/alloc",
"serde_json/alloc",
"shepherd/alloc",
]
std = [
"alloc",
"anyhow/std",
"clap/std",
"serde/std",
"serde_json/std",
"shepherd/std",
"thiserror/std",
"tracing/std",
]
bundled = [
"shepherd/bundled",
]
sqlite-wasm = [
"shepherd/sqlite-wasm",
]
wasi-vfs = [
"shepherd/wasi-vfs",
]
[lints]
workspace = true