Files
RedBear-OS/local/recipes/shells/brush/source/brush-shell/Cargo.toml
T
vasilito 25fb843c40 brush: vendor the source tree (un-ignore) to complete the local fork
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>
2026-07-26 23:34:31 +09:00

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"