mirror of
https://github.com/nushell/nushell.git
synced 2024-12-22 23:23:12 +01:00
dfec687a46
# Description - Refactor code to be simpler. - Make the mentioned changes. - `scopeguard` is added as a direct dependency. Helps simplify the code. Rather than roll an ad-hoc version of it myself, I thought it would be better to use `scopeguard` as it was already an indirect dependency. # User-Facing Changes - Add `--beginning` flag, which is used to validate the response and provide early errors in case of unexpected inputs. - Both `terminator` and `beginning` sequences (when provided) are not included in the command's output. Turns out they are almost always removed from the output, and because they are known beforehand they can be added back by the user.
327 lines
9.1 KiB
TOML
327 lines
9.1 KiB
TOML
[package]
|
|
authors = ["The Nushell Project Developers"]
|
|
build = "scripts/build.rs"
|
|
default-run = "nu"
|
|
description = "A new type of shell"
|
|
documentation = "https://www.nushell.sh/book/"
|
|
edition = "2021"
|
|
exclude = ["images"]
|
|
homepage = "https://www.nushell.sh"
|
|
license = "MIT"
|
|
name = "nu"
|
|
repository = "https://github.com/nushell/nushell"
|
|
rust-version = "1.81.0"
|
|
version = "0.100.1"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[package.metadata.binstall]
|
|
pkg-url = "{ repo }/releases/download/{ version }/{ name }-{ version }-{ target }.{ archive-format }"
|
|
pkg-fmt = "tgz"
|
|
|
|
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
|
|
pkg-fmt = "zip"
|
|
|
|
[workspace]
|
|
members = [
|
|
"crates/nu-cli",
|
|
"crates/nu-engine",
|
|
"crates/nu-parser",
|
|
"crates/nu-system",
|
|
"crates/nu-cmd-base",
|
|
"crates/nu-cmd-extra",
|
|
"crates/nu-cmd-lang",
|
|
"crates/nu-cmd-plugin",
|
|
"crates/nu-command",
|
|
"crates/nu-color-config",
|
|
"crates/nu-explore",
|
|
"crates/nu-json",
|
|
"crates/nu-lsp",
|
|
"crates/nu-pretty-hex",
|
|
"crates/nu-protocol",
|
|
"crates/nu-derive-value",
|
|
"crates/nu-plugin",
|
|
"crates/nu-plugin-core",
|
|
"crates/nu-plugin-engine",
|
|
"crates/nu-plugin-protocol",
|
|
"crates/nu-plugin-test-support",
|
|
"crates/nu_plugin_inc",
|
|
"crates/nu_plugin_gstat",
|
|
"crates/nu_plugin_example",
|
|
"crates/nu_plugin_query",
|
|
"crates/nu_plugin_custom_values",
|
|
"crates/nu_plugin_formats",
|
|
"crates/nu_plugin_polars",
|
|
"crates/nu_plugin_stress_internals",
|
|
"crates/nu-std",
|
|
"crates/nu-table",
|
|
"crates/nu-term-grid",
|
|
"crates/nu-test-support",
|
|
"crates/nu-utils",
|
|
"crates/nuon",
|
|
]
|
|
|
|
[workspace.dependencies]
|
|
alphanumeric-sort = "1.5"
|
|
ansi-str = "0.8"
|
|
anyhow = "1.0.82"
|
|
base64 = "0.22.1"
|
|
bracoxide = "0.1.4"
|
|
brotli = "6.0"
|
|
byteorder = "1.5"
|
|
bytes = "1"
|
|
bytesize = "1.3"
|
|
calamine = "0.26.1"
|
|
chardetng = "0.1.17"
|
|
chrono = { default-features = false, version = "0.4.34" }
|
|
chrono-humanize = "0.2.3"
|
|
chrono-tz = "0.10"
|
|
crossbeam-channel = "0.5.8"
|
|
crossterm = "0.28.1"
|
|
csv = "1.3"
|
|
ctrlc = "3.4"
|
|
dialoguer = { default-features = false, version = "0.11" }
|
|
digest = { default-features = false, version = "0.10" }
|
|
dirs = "5.0"
|
|
dirs-sys = "0.4"
|
|
dtparse = "2.0"
|
|
encoding_rs = "0.8"
|
|
fancy-regex = "0.14"
|
|
filesize = "0.2"
|
|
filetime = "0.2"
|
|
fuzzy-matcher = "0.3"
|
|
heck = "0.5.0"
|
|
human-date-parser = "0.2.0"
|
|
indexmap = "2.6"
|
|
indicatif = "0.17"
|
|
interprocess = "2.2.0"
|
|
is_executable = "1.0"
|
|
itertools = "0.13"
|
|
libc = "0.2"
|
|
libproc = "0.14"
|
|
log = "0.4"
|
|
lru = "0.12"
|
|
lscolors = { version = "0.17", default-features = false }
|
|
lsp-server = "0.7.5"
|
|
lsp-types = { version = "0.95.0", features = ["proposed"] }
|
|
mach2 = "0.4"
|
|
md5 = { version = "0.10", package = "md-5" }
|
|
miette = "7.3"
|
|
mime = "0.3.17"
|
|
mime_guess = "2.0"
|
|
mockito = { version = "1.6", default-features = false }
|
|
multipart-rs = "0.1.11"
|
|
native-tls = "0.2"
|
|
nix = { version = "0.29", default-features = false }
|
|
notify-debouncer-full = { version = "0.3", default-features = false }
|
|
nu-ansi-term = "0.50.1"
|
|
num-format = "0.4"
|
|
num-traits = "0.2"
|
|
oem_cp = "2.0.0"
|
|
omnipath = "0.1"
|
|
open = "5.3"
|
|
os_pipe = { version = "1.2", features = ["io_safety"] }
|
|
pathdiff = "0.2"
|
|
percent-encoding = "2"
|
|
pretty_assertions = "1.4"
|
|
print-positions = "0.6"
|
|
proc-macro-error = { version = "1.0", default-features = false }
|
|
proc-macro2 = "1.0"
|
|
procfs = "0.16.0"
|
|
pwd = "1.3"
|
|
quick-xml = "0.37.0"
|
|
quickcheck = "1.0"
|
|
quickcheck_macros = "1.0"
|
|
quote = "1.0"
|
|
rand = "0.8"
|
|
getrandom = "0.2" # pick same version that rand requires
|
|
rand_chacha = "0.3.1"
|
|
ratatui = "0.26"
|
|
rayon = "1.10"
|
|
reedline = "0.37.0"
|
|
regex = "1.9.5"
|
|
rmp = "0.8"
|
|
rmp-serde = "1.3"
|
|
ropey = "1.6.1"
|
|
roxmltree = "0.19"
|
|
rstest = { version = "0.23", default-features = false }
|
|
rusqlite = "0.31"
|
|
rust-embed = "8.5.0"
|
|
scopeguard = { version = "1.2.0" }
|
|
serde = { version = "1.0" }
|
|
serde_json = "1.0"
|
|
serde_urlencoded = "0.7.1"
|
|
serde_yaml = "0.9"
|
|
sha2 = "0.10"
|
|
strip-ansi-escapes = "0.2.0"
|
|
syn = "2.0"
|
|
sysinfo = "0.32"
|
|
tabled = { version = "0.16.0", default-features = false }
|
|
tempfile = "3.14"
|
|
terminal_size = "0.4"
|
|
titlecase = "2.0"
|
|
toml = "0.8"
|
|
trash = "5.2"
|
|
umask = "2.1"
|
|
unicode-segmentation = "1.12"
|
|
unicode-width = "0.2"
|
|
ureq = { version = "2.10", default-features = false }
|
|
url = "2.2"
|
|
uu_cp = "0.0.28"
|
|
uu_mkdir = "0.0.28"
|
|
uu_mktemp = "0.0.28"
|
|
uu_mv = "0.0.28"
|
|
uu_touch = "0.0.28"
|
|
uu_whoami = "0.0.28"
|
|
uu_uname = "0.0.28"
|
|
uucore = "0.0.28"
|
|
uuid = "1.11.0"
|
|
v_htmlescape = "0.15.0"
|
|
wax = "0.6"
|
|
which = "6.0.0"
|
|
windows = "0.56"
|
|
windows-sys = "0.48"
|
|
winreg = "0.52"
|
|
|
|
[workspace.lints.clippy]
|
|
# Warning: workspace lints affect library code as well as tests, so don't enable lints that would be too noisy in tests like that.
|
|
# todo = "warn"
|
|
unchecked_duration_subtraction = "warn"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
nu-cli = { path = "./crates/nu-cli", version = "0.100.1" }
|
|
nu-cmd-base = { path = "./crates/nu-cmd-base", version = "0.100.1" }
|
|
nu-cmd-lang = { path = "./crates/nu-cmd-lang", version = "0.100.1" }
|
|
nu-cmd-plugin = { path = "./crates/nu-cmd-plugin", version = "0.100.1", optional = true }
|
|
nu-cmd-extra = { path = "./crates/nu-cmd-extra", version = "0.100.1" }
|
|
nu-command = { path = "./crates/nu-command", version = "0.100.1" }
|
|
nu-engine = { path = "./crates/nu-engine", version = "0.100.1" }
|
|
nu-explore = { path = "./crates/nu-explore", version = "0.100.1" }
|
|
nu-lsp = { path = "./crates/nu-lsp/", version = "0.100.1" }
|
|
nu-parser = { path = "./crates/nu-parser", version = "0.100.1" }
|
|
nu-path = { path = "./crates/nu-path", version = "0.100.1" }
|
|
nu-plugin-engine = { path = "./crates/nu-plugin-engine", optional = true, version = "0.100.1" }
|
|
nu-protocol = { path = "./crates/nu-protocol", version = "0.100.1" }
|
|
nu-std = { path = "./crates/nu-std", version = "0.100.1" }
|
|
nu-system = { path = "./crates/nu-system", version = "0.100.1" }
|
|
nu-utils = { path = "./crates/nu-utils", version = "0.100.1" }
|
|
reedline = { workspace = true, features = ["bashisms", "sqlite"] }
|
|
|
|
crossterm = { workspace = true }
|
|
ctrlc = { workspace = true }
|
|
dirs = { workspace = true }
|
|
log = { workspace = true }
|
|
miette = { workspace = true, features = ["fancy-no-backtrace", "fancy"] }
|
|
mimalloc = { version = "0.1.42", default-features = false, optional = true }
|
|
multipart-rs = { workspace = true }
|
|
serde_json = { workspace = true }
|
|
simplelog = "0.12"
|
|
time = "0.3"
|
|
|
|
[target.'cfg(not(target_os = "windows"))'.dependencies]
|
|
# Our dependencies don't use OpenSSL on Windows
|
|
openssl = { version = "0.10", features = ["vendored"], optional = true }
|
|
|
|
[target.'cfg(windows)'.build-dependencies]
|
|
winresource = "0.1"
|
|
|
|
[target.'cfg(target_family = "unix")'.dependencies]
|
|
nix = { workspace = true, default-features = false, features = [
|
|
"signal",
|
|
"process",
|
|
"fs",
|
|
"term",
|
|
] }
|
|
|
|
[dev-dependencies]
|
|
nu-test-support = { path = "./crates/nu-test-support", version = "0.100.1" }
|
|
nu-plugin-protocol = { path = "./crates/nu-plugin-protocol", version = "0.100.1" }
|
|
nu-plugin-core = { path = "./crates/nu-plugin-core", version = "0.100.1" }
|
|
assert_cmd = "2.0"
|
|
dirs = { workspace = true }
|
|
tango-bench = "0.6"
|
|
pretty_assertions = { workspace = true }
|
|
regex = { workspace = true }
|
|
rstest = { workspace = true, default-features = false }
|
|
serial_test = "3.2"
|
|
tempfile = { workspace = true }
|
|
|
|
[features]
|
|
plugin = [
|
|
"nu-plugin-engine",
|
|
"nu-cmd-plugin",
|
|
"nu-cli/plugin",
|
|
"nu-parser/plugin",
|
|
"nu-command/plugin",
|
|
"nu-protocol/plugin",
|
|
"nu-engine/plugin",
|
|
]
|
|
|
|
default = [
|
|
"plugin",
|
|
"trash-support",
|
|
"sqlite",
|
|
"mimalloc",
|
|
]
|
|
stable = ["default"]
|
|
# NOTE: individual features are also passed to `nu-cmd-lang` that uses them to generate the feature matrix in the `version` command
|
|
|
|
# Enable to statically link OpenSSL (perl is required, to build OpenSSL https://docs.rs/openssl/latest/openssl/);
|
|
# otherwise the system version will be used. Not enabled by default because it takes a while to build
|
|
static-link-openssl = ["dep:openssl", "nu-cmd-lang/static-link-openssl"]
|
|
|
|
mimalloc = ["nu-cmd-lang/mimalloc", "dep:mimalloc"]
|
|
# Optional system clipboard support in `reedline`, this behavior has problematic compatibility with some systems.
|
|
# Missing X server/ Wayland can cause issues
|
|
system-clipboard = [
|
|
"reedline/system_clipboard",
|
|
"nu-cli/system-clipboard",
|
|
"nu-cmd-lang/system-clipboard",
|
|
]
|
|
|
|
# Stable (Default)
|
|
trash-support = ["nu-command/trash-support", "nu-cmd-lang/trash-support"]
|
|
|
|
# SQLite commands for nushell
|
|
sqlite = ["nu-command/sqlite", "nu-cmd-lang/sqlite"]
|
|
|
|
[profile.release]
|
|
opt-level = "s" # Optimize for size
|
|
strip = "debuginfo"
|
|
lto = "thin"
|
|
|
|
# build with `cargo build --profile profiling`
|
|
# to analyze performance with tooling like linux perf
|
|
[profile.profiling]
|
|
inherits = "release"
|
|
strip = false
|
|
debug = true
|
|
|
|
# build with `cargo build --profile ci`
|
|
# to analyze performance with tooling like linux perf
|
|
[profile.ci]
|
|
inherits = "dev"
|
|
strip = false
|
|
debug = false
|
|
|
|
# Main nu binary
|
|
[[bin]]
|
|
name = "nu"
|
|
path = "src/main.rs"
|
|
bench = false
|
|
|
|
# To use a development version of a dependency please use a global override here
|
|
# changing versions in each sub-crate of the workspace is tedious
|
|
[patch.crates-io]
|
|
reedline = { git = "https://github.com/nushell/reedline", branch = "main" }
|
|
# nu-ansi-term = {git = "https://github.com/nushell/nu-ansi-term.git", branch = "main"}
|
|
|
|
# Run all benchmarks with `cargo bench`
|
|
# Run individual benchmarks like `cargo bench -- <regex>` e.g. `cargo bench -- parse`
|
|
[[bench]]
|
|
name = "benchmarks"
|
|
harness = false
|