mirror of
https://github.com/nushell/nushell
synced 2024-12-28 14:03:09 +00:00
3a39e3df22
This was prompted by CVE-2024-24576 - https://nvd.nist.gov/vuln/detail/CVE-2024-24576 - https://blog.rust-lang.org/2024/04/09/cve-2024-24576.html - https://flatt.tech/research/posts/batbadbut-you-cant-securely-execute-commands-on-windows/ Affected is launching commands on Windows with arbitrary arguments, which is the case for Nushell's external invocation on Windows Rust has fixed this quoting vulnerability in 1.77.2 (latest stable at time of commit) We will thus use this version for our builds and recommend all our packaging/distribution maintainers to use this version of Rust when building Nushell.
296 lines
8.3 KiB
TOML
296 lines
8.3 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.77.2"
|
|
version = "0.92.2"
|
|
|
|
# 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-dataframe",
|
|
"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-plugin",
|
|
"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-std",
|
|
"crates/nu-table",
|
|
"crates/nu-term-grid",
|
|
"crates/nu-test-support",
|
|
"crates/nu-utils",
|
|
]
|
|
|
|
[workspace.dependencies]
|
|
alphanumeric-sort = "1.5"
|
|
ansi-str = "0.8"
|
|
base64 = "0.22"
|
|
bracoxide = "0.1.2"
|
|
byteorder = "1.5"
|
|
bytesize = "1.3"
|
|
calamine = "0.24.0"
|
|
chardetng = "0.1.17"
|
|
chrono = { default-features = false, version = "0.4" }
|
|
chrono-humanize = "0.2.3"
|
|
chrono-tz = "0.8"
|
|
crossbeam-channel = "0.5.8"
|
|
crossterm = "0.27"
|
|
csv = "1.3"
|
|
ctrlc = "3.4"
|
|
dialoguer = { default-features = false, version = "0.11" }
|
|
digest = { default-features = false, version = "0.10" }
|
|
dirs-next = "2.0"
|
|
dtparse = "2.0"
|
|
encoding_rs = "0.8"
|
|
fancy-regex = "0.13"
|
|
filesize = "0.2"
|
|
filetime = "0.2"
|
|
fs_extra = "1.3"
|
|
fuzzy-matcher = "0.3"
|
|
hamcrest2 = "0.3"
|
|
heck = "0.5.0"
|
|
human-date-parser = "0.1.1"
|
|
indexmap = "2.2"
|
|
indicatif = "0.17"
|
|
is_executable = "1.0"
|
|
itertools = "0.12"
|
|
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 = "0.95.0"
|
|
mach2 = "0.4"
|
|
md5 = { version = "0.10", package = "md-5"}
|
|
miette = "7.2"
|
|
mime = "0.3"
|
|
mime_guess = "2.0"
|
|
mockito = { version = "1.4", default-features = false }
|
|
native-tls = "0.2"
|
|
nix = { version = "0.28", default-features = false }
|
|
notify-debouncer-full = { version = "0.3", default-features = false }
|
|
nu-ansi-term = "0.50.0"
|
|
num-format = "0.4"
|
|
num-traits = "0.2"
|
|
omnipath = "0.1"
|
|
once_cell = "1.18"
|
|
open = "5.1"
|
|
os_pipe = "1.1"
|
|
pathdiff = "0.2"
|
|
percent-encoding = "2"
|
|
print-positions = "0.6"
|
|
procfs = "0.16.0"
|
|
pwd = "1.3"
|
|
quick-xml = "0.31.0"
|
|
quickcheck = "1.0"
|
|
quickcheck_macros = "1.0"
|
|
rand = "0.8"
|
|
ratatui = "0.26"
|
|
rayon = "1.10"
|
|
reedline = "0.31.0"
|
|
regex = "1.9.5"
|
|
ropey = "1.6.1"
|
|
roxmltree = "0.19"
|
|
rstest = { version = "0.18", default-features = false }
|
|
rusqlite = "0.31"
|
|
rust-embed = "8.3.0"
|
|
same-file = "1.0"
|
|
serde = { version = "1.0", default-features = false }
|
|
serde_json = "1.0"
|
|
serde_urlencoded = "0.7.1"
|
|
serde_yaml = "0.9"
|
|
sha2 = "0.10"
|
|
strip-ansi-escapes = "0.2.0"
|
|
sysinfo = "0.30"
|
|
tabled = { version = "0.14.0", default-features = false }
|
|
tempfile = "3.10"
|
|
terminal_size = "0.3"
|
|
titlecase = "2.0"
|
|
toml = "0.8"
|
|
trash = "3.3"
|
|
umask = "2.1"
|
|
unicode-segmentation = "1.11"
|
|
unicode-width = "0.1"
|
|
ureq = { version = "2.9", default-features = false }
|
|
url = "2.2"
|
|
uu_cp = "0.0.25"
|
|
uu_mkdir = "0.0.25"
|
|
uu_mktemp = "0.0.25"
|
|
uu_mv = "0.0.25"
|
|
uu_whoami = "0.0.25"
|
|
uu_uname = "0.0.25"
|
|
uucore = "0.0.25"
|
|
uuid = "1.8.0"
|
|
v_htmlescape = "0.15.0"
|
|
wax = "0.6"
|
|
which = "6.0.0"
|
|
windows = "0.54"
|
|
winreg = "0.52"
|
|
|
|
[dependencies]
|
|
nu-cli = { path = "./crates/nu-cli", version = "0.92.2" }
|
|
nu-cmd-base = { path = "./crates/nu-cmd-base", version = "0.92.2" }
|
|
nu-cmd-lang = { path = "./crates/nu-cmd-lang", version = "0.92.2" }
|
|
nu-cmd-dataframe = { path = "./crates/nu-cmd-dataframe", version = "0.92.2", features = [
|
|
"dataframe",
|
|
], optional = true }
|
|
nu-cmd-extra = { path = "./crates/nu-cmd-extra", version = "0.92.2" }
|
|
nu-command = { path = "./crates/nu-command", version = "0.92.2" }
|
|
nu-engine = { path = "./crates/nu-engine", version = "0.92.2" }
|
|
nu-explore = { path = "./crates/nu-explore", version = "0.92.2" }
|
|
nu-lsp = { path = "./crates/nu-lsp/", version = "0.92.2" }
|
|
nu-parser = { path = "./crates/nu-parser", version = "0.92.2" }
|
|
nu-path = { path = "./crates/nu-path", version = "0.92.2" }
|
|
nu-plugin = { path = "./crates/nu-plugin", optional = true, version = "0.92.2" }
|
|
nu-protocol = { path = "./crates/nu-protocol", version = "0.92.2" }
|
|
nu-std = { path = "./crates/nu-std", version = "0.92.2" }
|
|
nu-system = { path = "./crates/nu-system", version = "0.92.2" }
|
|
nu-utils = { path = "./crates/nu-utils", version = "0.92.2" }
|
|
|
|
reedline = { workspace = true, features = ["bashisms", "sqlite"] }
|
|
|
|
crossterm = { workspace = true }
|
|
ctrlc = { workspace = true }
|
|
log = { workspace = true }
|
|
miette = { workspace = true, features = ["fancy-no-backtrace", "fancy"] }
|
|
mimalloc = { version = "0.1.37", default-features = false, optional = 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.92.2" }
|
|
assert_cmd = "2.0"
|
|
dirs-next = { workspace = true }
|
|
divan = "0.1.14"
|
|
pretty_assertions = "1.4"
|
|
rstest = { workspace = true, default-features = false }
|
|
serial_test = "3.0"
|
|
tempfile = { workspace = true }
|
|
|
|
[features]
|
|
plugin = [
|
|
"nu-plugin",
|
|
"nu-cli/plugin",
|
|
"nu-parser/plugin",
|
|
"nu-command/plugin",
|
|
"nu-protocol/plugin",
|
|
"nu-engine/plugin",
|
|
]
|
|
default = ["default-no-clipboard", "system-clipboard"]
|
|
# Enables convenient omitting of the system-clipboard feature, as it leads to problems in ci on linux
|
|
# See https://github.com/nushell/nushell/pull/11535
|
|
default-no-clipboard = [
|
|
"plugin",
|
|
"which-support",
|
|
"trash-support",
|
|
"sqlite",
|
|
"mimalloc",
|
|
]
|
|
stable = ["default"]
|
|
wasi = ["nu-cmd-lang/wasi"]
|
|
# 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"]
|
|
system-clipboard = ["reedline/system_clipboard", "nu-cli/system-clipboard"]
|
|
|
|
# Stable (Default)
|
|
which-support = ["nu-command/which-support", "nu-cmd-lang/which-support"]
|
|
trash-support = ["nu-command/trash-support", "nu-cmd-lang/trash-support"]
|
|
|
|
# Dataframe feature for nushell
|
|
dataframe = ["dep:nu-cmd-dataframe", "nu-cmd-lang/dataframe"]
|
|
|
|
# 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
|