25fb843c40
The prior commit switched the recipe to `[source] path = "source"`, but .gitignore:77 still listed `local/recipes/shells/brush/source` (a leftover from when brush was a transient upstream git fetch), so the vendored tree was not tracked — a fresh clone would have no brush source and the build would fail. Drop that ignore line and commit the vendored working tree (reubeno/brush @ 897b373e, with the Redox port patches pre-applied). brush is now a durable local fork like the other path=source recipes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
151 lines
4.2 KiB
TOML
151 lines
4.2 KiB
TOML
[package]
|
|
name = "brush-shell"
|
|
description = "Rust-implemented shell focused on POSIX and bash compatibility"
|
|
version = "0.4.0"
|
|
authors.workspace = true
|
|
categories.workspace = true
|
|
edition.workspace = true
|
|
keywords.workspace = true
|
|
license.workspace = true
|
|
readme.workspace = true
|
|
repository.workspace = true
|
|
rust-version.workspace = true
|
|
|
|
[package.metadata.binstall]
|
|
pkg-url = "{ repo }/releases/download/{ name }-v{ version }/brush-{ target }{ archive-suffix }"
|
|
|
|
[lib]
|
|
bench = false
|
|
|
|
[[bin]]
|
|
name = "brush"
|
|
path = "src/main.rs"
|
|
bench = false
|
|
|
|
[[test]]
|
|
name = "brush-compat-tests"
|
|
path = "tests/compat_tests.rs"
|
|
harness = false
|
|
|
|
[[test]]
|
|
name = "brush-integration-tests"
|
|
path = "tests/integration_tests.rs"
|
|
harness = false
|
|
|
|
[[test]]
|
|
name = "brush-version-tests"
|
|
path = "tests/version_tests.rs"
|
|
|
|
[[test]]
|
|
name = "brush-interactive-tests"
|
|
path = "tests/interactive_tests.rs"
|
|
|
|
[[test]]
|
|
name = "brush-completion-tests"
|
|
path = "tests/completion_tests.rs"
|
|
|
|
[[bench]]
|
|
name = "shell"
|
|
path = "benches/shell.rs"
|
|
harness = false
|
|
|
|
[features]
|
|
default = ["basic", "reedline", "minimal"]
|
|
basic = ["brush-interactive/basic"]
|
|
minimal = ["brush-interactive/minimal"]
|
|
reedline = ["brush-interactive/reedline"]
|
|
experimental = [
|
|
"experimental-builtins",
|
|
"experimental-bundled-coreutils",
|
|
"experimental-load",
|
|
"experimental-parser",
|
|
]
|
|
experimental-builtins = ["dep:brush-experimental-builtins"]
|
|
experimental-bundled-coreutils = [
|
|
"dep:brush-coreutils-builtins",
|
|
"brush-coreutils-builtins/coreutils.all",
|
|
]
|
|
experimental-load = ["dep:serde_json", "brush-core/serde"]
|
|
experimental-parser = [
|
|
"brush-core/experimental-parser",
|
|
"brush-parser/winnow-parser",
|
|
]
|
|
schema = ["dep:schemars"]
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
brush-core = { version = "^0.5.0", path = "../brush-core" }
|
|
brush-builtins = { version = "^0.2.0", path = "../brush-builtins" }
|
|
brush-coreutils-builtins = { version = "^0.1.0", path = "../brush-coreutils-builtins", optional = true }
|
|
brush-experimental-builtins = { version = "^0.1.0", path = "../brush-experimental-builtins", optional = true }
|
|
clap = { version = "4.6.0", features = ["derive", "env"] }
|
|
color-print = "0.3.7"
|
|
etcetera = "0.11.0"
|
|
schemars = { version = "1.2.1", optional = true }
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
toml = "1.1.0"
|
|
const_format = "0.2.36"
|
|
git-version = "0.3.9"
|
|
serde_json = { version = "1.0.149", optional = true }
|
|
thiserror = "2.0.18"
|
|
tracing = "0.1.44"
|
|
tracing-subscriber = "0.3.23"
|
|
human-panic = "2.0.6"
|
|
|
|
[target.'cfg(not(any(unix, windows)))'.dependencies]
|
|
brush-interactive = { version = "^0.4.0", path = "../brush-interactive", features = [
|
|
"minimal",
|
|
] }
|
|
tokio = { version = "1.52.3", features = ["rt", "sync"] }
|
|
|
|
[target.'cfg(any(unix, windows))'.dependencies]
|
|
brush-interactive = { version = "^0.4.0", path = "../brush-interactive", features = [
|
|
"basic",
|
|
"reedline",
|
|
] }
|
|
crossterm = "0.29.0"
|
|
tokio = { version = "1.52.3", features = ["rt", "rt-multi-thread", "sync"] }
|
|
|
|
[target.wasm32-unknown-unknown.dependencies]
|
|
getrandom = { version = "0.4.2", features = ["wasm_js"] }
|
|
uuid = { version = "1.23.1", features = ["js"] }
|
|
|
|
[dev-dependencies]
|
|
anyhow = "1.0.102"
|
|
tempfile = "3.27.0"
|
|
brush-parser = { version = "^0.4.0", path = "../brush-parser" }
|
|
brush-test-harness = { path = "../brush-test-harness", features = ["insta"] }
|
|
assert_cmd = "2.2.0"
|
|
assert_fs = "1.1.3"
|
|
colored = "3.1.1"
|
|
criterion = { version = "0.8.2", features = ["async_tokio", "html_reports"] }
|
|
descape = "3.0.0"
|
|
diff = "0.1.13"
|
|
glob = "0.3.3"
|
|
indent = "0.1.1"
|
|
indexmap = "2.13.0"
|
|
junit-report = "0.9.0"
|
|
os-release = "0.1.0"
|
|
predicates = "3.1.4"
|
|
pretty_assertions = { version = "1.4.1", features = ["unstable"] }
|
|
regex = "1.12.3"
|
|
serde = { version = "1.0.228", features = ["derive"] }
|
|
serde_yaml = "0.9.34"
|
|
strip-ansi-escapes = "0.2.1"
|
|
test-with = { version = "0.16.0", default-features = false, features = [
|
|
"executable",
|
|
] }
|
|
version-compare = "0.2.1"
|
|
walkdir = "2.5.0"
|
|
which = "8.0.2"
|
|
|
|
[target.'cfg(unix)'.dev-dependencies]
|
|
nix = { version = "0.31.2" }
|
|
|
|
# expectrl's pty support (via ptyprocess) is limited to these platforms;
|
|
# the interactive tests that rely on it are gated accordingly.
|
|
[target.'cfg(any(target_os = "linux", target_os = "android", target_os = "macos", target_os = "freebsd"))'.dev-dependencies]
|
|
expectrl = "0.8.0"
|