mirror of
https://github.com/nushell/nushell
synced 2024-12-28 22:13:10 +00:00
7dc1d6a350
The autoenv logic mutates environment variables in the running session as it operates and decides what to do for trusted directories containing `.nu-env` files. Few of the ways to interact with it were all in a single test function. We separate out all the ways that were done in the single test function to document it better. This will greatly help once we start refactoring our way out from setting environment variables this way to just setting them to `Scope`. This is part of an on-going effort to keep variables (`PATH` and `ENV`) in our `Scope` and rely on it for everything related to variables. We expect to move away from setting (`std::*`) envrironment variables in the current running process. This is non-trivial since we need to handle cases from vars coming in from the outside world, prioritize, and also compare to the ones we have both stored in memory and in configuration files. Also to send out our in-memory (in `Scope`) variables properly to external programs once we no longer rely on `std::env` vars from the running process.
260 lines
7.7 KiB
TOML
260 lines
7.7 KiB
TOML
[package]
|
|
authors = ["The Nu Project Contributors"]
|
|
default-run = "nu"
|
|
description = "A new type of shell"
|
|
documentation = "https://www.nushell.sh/book/"
|
|
edition = "2018"
|
|
exclude = ["images"]
|
|
homepage = "https://www.nushell.sh"
|
|
license = "MIT"
|
|
name = "nu"
|
|
readme = "README.md"
|
|
repository = "https://github.com/nushell/nushell"
|
|
version = "0.27.1"
|
|
|
|
[workspace]
|
|
members = ["crates/*/"]
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[dependencies]
|
|
nu-cli = { version = "0.27.1", path = "./crates/nu-cli", default-features = false }
|
|
nu-command = { version = "0.27.1", path = "./crates/nu-command" }
|
|
nu-data = { version = "0.27.1", path = "./crates/nu-data" }
|
|
nu-engine = { version = "0.27.1", path = "./crates/nu-engine" }
|
|
nu-errors = { version = "0.27.1", path = "./crates/nu-errors" }
|
|
nu-parser = { version = "0.27.1", path = "./crates/nu-parser" }
|
|
nu-plugin = { version = "0.27.1", path = "./crates/nu-plugin" }
|
|
nu-protocol = { version = "0.27.1", path = "./crates/nu-protocol" }
|
|
nu-source = { version = "0.27.1", path = "./crates/nu-source" }
|
|
nu-value-ext = { version = "0.27.1", path = "./crates/nu-value-ext" }
|
|
|
|
nu_plugin_binaryview = { version = "0.27.1", path = "./crates/nu_plugin_binaryview", optional = true }
|
|
nu_plugin_chart = { version = "0.27.1", path = "./crates/nu_plugin_chart", optional = true }
|
|
nu_plugin_fetch = { version = "0.27.1", path = "./crates/nu_plugin_fetch", optional = true }
|
|
nu_plugin_from_bson = { version = "0.27.1", path = "./crates/nu_plugin_from_bson", optional = true }
|
|
nu_plugin_from_sqlite = { version = "0.27.1", path = "./crates/nu_plugin_from_sqlite", optional = true }
|
|
nu_plugin_inc = { version = "0.27.1", path = "./crates/nu_plugin_inc", optional = true }
|
|
nu_plugin_match = { version = "0.27.1", path = "./crates/nu_plugin_match", optional = true }
|
|
nu_plugin_post = { version = "0.27.1", path = "./crates/nu_plugin_post", optional = true }
|
|
nu_plugin_ps = { version = "0.27.1", path = "./crates/nu_plugin_ps", optional = true }
|
|
nu_plugin_s3 = { version = "0.27.1", path = "./crates/nu_plugin_s3", optional = true }
|
|
nu_plugin_selector = { version = "0.27.1", path = "./crates/nu_plugin_selector", optional = true }
|
|
nu_plugin_start = { version = "0.27.1", path = "./crates/nu_plugin_start", optional = true }
|
|
nu_plugin_sys = { version = "0.27.1", path = "./crates/nu_plugin_sys", optional = true }
|
|
nu_plugin_textview = { version = "0.27.1", path = "./crates/nu_plugin_textview", optional = true }
|
|
nu_plugin_to_bson = { version = "0.27.1", path = "./crates/nu_plugin_to_bson", optional = true }
|
|
nu_plugin_to_sqlite = { version = "0.27.1", path = "./crates/nu_plugin_to_sqlite", optional = true }
|
|
nu_plugin_tree = { version = "0.27.1", path = "./crates/nu_plugin_tree", optional = true }
|
|
nu_plugin_xpath = { version = "0.27.1", path = "./crates/nu_plugin_xpath", optional = true }
|
|
|
|
# Required to bootstrap the main binary
|
|
clap = "2.33.3"
|
|
ctrlc = { version = "3.1.7", optional = true }
|
|
futures = { version = "0.3.12", features = ["compat", "io-compat"] }
|
|
itertools = "0.10.0"
|
|
log = "0.4.14"
|
|
pretty_env_logger = "0.4.0"
|
|
|
|
[dev-dependencies]
|
|
nu-test-support = { version = "0.27.1", path = "./crates/nu-test-support" }
|
|
dunce = "1.0.1"
|
|
serial_test = "0.5.1"
|
|
|
|
|
|
[build-dependencies]
|
|
|
|
[features]
|
|
ctrlc-support = ["nu-cli/ctrlc", "nu-command/ctrlc"]
|
|
directories-support = [
|
|
"nu-cli/directories",
|
|
"nu-cli/dirs",
|
|
"nu-command/directories",
|
|
"nu-command/dirs",
|
|
"nu-data/directories",
|
|
"nu-data/dirs",
|
|
"nu-engine/dirs",
|
|
]
|
|
ptree-support = ["nu-cli/ptree", "nu-command/ptree"]
|
|
rustyline-support = ["nu-cli/rustyline-support", "nu-command/rustyline-support"]
|
|
term-support = ["nu-cli/term", "nu-command/term"]
|
|
uuid-support = ["nu-cli/uuid_crate", "nu-command/uuid_crate"]
|
|
which-support = [
|
|
"nu-cli/ichwh",
|
|
"nu-cli/which",
|
|
"nu-command/ichwh",
|
|
"nu-command/which",
|
|
]
|
|
|
|
default = [
|
|
"nu-cli/shadow-rs",
|
|
"sys",
|
|
"ps",
|
|
"textview",
|
|
"inc",
|
|
"directories-support",
|
|
"ctrlc-support",
|
|
"which-support",
|
|
"ptree-support",
|
|
"term-support",
|
|
"uuid-support",
|
|
"rustyline-support",
|
|
"match",
|
|
"post",
|
|
"fetch",
|
|
"zip-support",
|
|
]
|
|
|
|
stable = ["default"]
|
|
extra = [
|
|
"default",
|
|
"binaryview",
|
|
"tree",
|
|
"clipboard-cli",
|
|
"trash-support",
|
|
"start",
|
|
"bson",
|
|
"sqlite",
|
|
"s3",
|
|
"chart",
|
|
"xpath",
|
|
"selector",
|
|
]
|
|
|
|
wasi = ["inc", "match", "ptree-support", "match", "tree", "rustyline-support"]
|
|
|
|
trace = ["nu-parser/trace"]
|
|
|
|
# Stable (Default)
|
|
fetch = ["nu_plugin_fetch"]
|
|
inc = ["nu_plugin_inc"]
|
|
match = ["nu_plugin_match"]
|
|
post = ["nu_plugin_post"]
|
|
ps = ["nu_plugin_ps"]
|
|
sys = ["nu_plugin_sys"]
|
|
textview = ["nu_plugin_textview"]
|
|
zip-support = ["nu-cli/zip", "nu-command/zip"]
|
|
|
|
# Extra
|
|
binaryview = ["nu_plugin_binaryview"]
|
|
bson = ["nu_plugin_from_bson", "nu_plugin_to_bson"]
|
|
chart = ["nu_plugin_chart"]
|
|
clipboard-cli = ["nu-cli/clipboard-cli", "nu-command/clipboard-cli"]
|
|
s3 = ["nu_plugin_s3"]
|
|
selector = ["nu_plugin_selector"]
|
|
sqlite = ["nu_plugin_from_sqlite", "nu_plugin_to_sqlite"]
|
|
start = ["nu_plugin_start"]
|
|
trash-support = ["nu-cli/trash-support", "nu-command/trash-support"]
|
|
tree = ["nu_plugin_tree"]
|
|
xpath = ["nu_plugin_xpath"]
|
|
|
|
[profile.release]
|
|
#strip = "symbols" #Couldn't get working +nightly
|
|
codegen-units = 1 #Reduce parallel codegen units
|
|
lto = true #Link Time Optimization
|
|
opt-level = 'z' #Optimize for size
|
|
|
|
# Core plugins that ship with `cargo install nu` by default
|
|
# Currently, Cargo limits us to installing only one binary
|
|
# unless we use [[bin]], so we use this as a workaround
|
|
[[bin]]
|
|
name = "nu_plugin_core_textview"
|
|
path = "src/plugins/nu_plugin_core_textview.rs"
|
|
required-features = ["textview"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_core_inc"
|
|
path = "src/plugins/nu_plugin_core_inc.rs"
|
|
required-features = ["inc"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_core_ps"
|
|
path = "src/plugins/nu_plugin_core_ps.rs"
|
|
required-features = ["ps"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_core_sys"
|
|
path = "src/plugins/nu_plugin_core_sys.rs"
|
|
required-features = ["sys"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_core_fetch"
|
|
path = "src/plugins/nu_plugin_core_fetch.rs"
|
|
required-features = ["fetch"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_core_match"
|
|
path = "src/plugins/nu_plugin_core_match.rs"
|
|
required-features = ["match"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_core_post"
|
|
path = "src/plugins/nu_plugin_core_post.rs"
|
|
required-features = ["post"]
|
|
|
|
# Extra plugins
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_binaryview"
|
|
path = "src/plugins/nu_plugin_extra_binaryview.rs"
|
|
required-features = ["binaryview"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_tree"
|
|
path = "src/plugins/nu_plugin_extra_tree.rs"
|
|
required-features = ["tree"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_start"
|
|
path = "src/plugins/nu_plugin_extra_start.rs"
|
|
required-features = ["start"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_s3"
|
|
path = "src/plugins/nu_plugin_extra_s3.rs"
|
|
required-features = ["s3"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_chart_bar"
|
|
path = "src/plugins/nu_plugin_extra_chart_bar.rs"
|
|
required-features = ["chart"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_chart_line"
|
|
path = "src/plugins/nu_plugin_extra_chart_line.rs"
|
|
required-features = ["chart"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_xpath"
|
|
path = "src/plugins/nu_plugin_extra_xpath.rs"
|
|
required-features = ["xpath"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_selector"
|
|
path = "src/plugins/nu_plugin_extra_selector.rs"
|
|
required-features = ["selector"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_from_bson"
|
|
path = "src/plugins/nu_plugin_extra_from_bson.rs"
|
|
required-features = ["bson"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_to_bson"
|
|
path = "src/plugins/nu_plugin_extra_to_bson.rs"
|
|
required-features = ["bson"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_from_sqlite"
|
|
path = "src/plugins/nu_plugin_extra_from_sqlite.rs"
|
|
required-features = ["sqlite"]
|
|
|
|
[[bin]]
|
|
name = "nu_plugin_extra_to_sqlite"
|
|
path = "src/plugins/nu_plugin_extra_to_sqlite.rs"
|
|
required-features = ["sqlite"]
|
|
|
|
# Main nu binary
|
|
[[bin]]
|
|
name = "nu"
|
|
path = "src/main.rs"
|