mirror of
https://github.com/nushell/nushell.git
synced 2025-06-30 14:40:06 +02:00
Improve with-env
robustness (#12523)
# Description Work for #7149 - **Error `with-env` given uneven count in list form** - **Fix `with-env` `CantConvert` to record** - **Error `with-env` when given protected env vars** - **Deprecate list/table input of vars to `with-env`** - **Remove examples for deprecated input** # User-Facing Changes ## Deprecation of the following forms ``` > with-env [MYENV "my env value"] { $env.MYENV } my env value > with-env [X Y W Z] { $env.X } Y > with-env [[X W]; [Y Z]] { $env.W } Z ``` ## recommended standardized form ``` # Set by key-value record > with-env {X: "Y", W: "Z"} { [$env.X $env.W] } ╭───┬───╮ │ 0 │ Y │ │ 1 │ Z │ ╰───┴───╯ ``` ## (Side effect) Repeated definitions in an env shorthand are now disallowed ``` > FOO=bar FOO=baz $env Error: nu:🐚:column_defined_twice × Record field or table column used twice: FOO ╭─[entry #1:1:1] 1 │ FOO=bar FOO=baz $env · ─┬─ ─┬─ · │ ╰── field redefined here · ╰── field first defined here ╰──── ```
This commit is contained in:
committed by
GitHub
parent
5f818eaefe
commit
c9e9b138eb
@ -63,7 +63,7 @@ fn let_pipeline_redirects_externals() {
|
||||
#[test]
|
||||
fn let_err_pipeline_redirects_externals() {
|
||||
let actual = nu!(
|
||||
r#"let x = with-env [FOO "foo"] {nu --testbin echo_env_stderr FOO e>| str length}; $x"#
|
||||
r#"let x = with-env { FOO: "foo" } {nu --testbin echo_env_stderr FOO e>| str length}; $x"#
|
||||
);
|
||||
assert_eq!(actual.out, "3");
|
||||
}
|
||||
@ -71,7 +71,7 @@ fn let_err_pipeline_redirects_externals() {
|
||||
#[test]
|
||||
fn let_outerr_pipeline_redirects_externals() {
|
||||
let actual = nu!(
|
||||
r#"let x = with-env [FOO "foo"] {nu --testbin echo_env_stderr FOO o+e>| str length}; $x"#
|
||||
r#"let x = with-env { FOO: "foo" } {nu --testbin echo_env_stderr FOO o+e>| str length}; $x"#
|
||||
);
|
||||
assert_eq!(actual.out, "3");
|
||||
}
|
||||
|
@ -90,7 +90,7 @@ fn folding_with_tables() {
|
||||
"
|
||||
echo [10 20 30 40]
|
||||
| reduce --fold [] { |it, acc|
|
||||
with-env [value $it] {
|
||||
with-env { value: $it } {
|
||||
echo $acc | append (10 * ($env.value | into int))
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ use nu_test_support::nu;
|
||||
|
||||
#[test]
|
||||
fn with_env_extends_environment() {
|
||||
let actual = nu!("with-env [FOO BARRRR] {echo $env} | get FOO");
|
||||
let actual = nu!("with-env { FOO: BARRRR } {echo $env} | get FOO");
|
||||
|
||||
assert_eq!(actual.out, "BARRRR");
|
||||
}
|
||||
@ -32,7 +32,7 @@ fn with_env_shorthand_trims_quotes() {
|
||||
fn with_env_and_shorthand_same_result() {
|
||||
let actual_shorthand = nu!("FOO='BARRRR' echo $env | get FOO");
|
||||
|
||||
let actual_normal = nu!("with-env [FOO BARRRR] {echo $env} | get FOO");
|
||||
let actual_normal = nu!("with-env { FOO: BARRRR } {echo $env} | get FOO");
|
||||
|
||||
assert_eq!(actual_shorthand.out, actual_normal.out);
|
||||
}
|
||||
@ -50,7 +50,7 @@ fn with_env_hides_variables_in_parent_scope() {
|
||||
let actual = nu!(r#"
|
||||
$env.FOO = "1"
|
||||
print $env.FOO
|
||||
with-env [FOO null] {
|
||||
with-env { FOO: null } {
|
||||
echo $env.FOO
|
||||
}
|
||||
print $env.FOO
|
||||
|
Reference in New Issue
Block a user