nushell/crates/nu-command/src
Stefan Holderbach 078ba5aabe
Disallow setting the PWD via load-env input (#12522)
# Description
Fixes #12520


# User-Facing Changes
Breaking change:

Any operation parsing input with `PWD` to set the environment will now
fail with `ShellError::AutomaticEnvVarSetManually`

Furthermore transactions containing the special env-vars will be
rejected before executing any modifications. Prevoiusly this was
changing valid variables before while leaving valid variables after the
violation untouched.

## `PWD` handling.

Now failing

```
{PWD: "/trolling"} | load-env
``` 

already failing 

```
load-env {PWD: "/trolling"}
``` 

## Error management



```
> load-env {MY_VAR1: foo, PWD: "/trolling", MY_VAR2: bar}
Error: nu:🐚:automatic_env_var_set_manually

  × PWD cannot be set manually.
   ╭─[entry #1:1:2]
 1 │  load-env {MY_VAR1: foo, PWD: "/trolling", MY_VAR2: bar}
   ·  ────┬───
   ·      ╰── cannot set 'PWD' manually
   ╰────
  help: The environment variable 'PWD' is set automatically by Nushell and cannot be set manually.
```

### Before:
```
> $env.MY_VAR1
foo
> $env.MY_VAR2
Error: nu:🐚:name_not_found
....
```
### After:
```
> $env.MY_VAR1
Error: nu:🐚:name_not_found
....
> $env.MY_VAR2
Error: nu:🐚:name_not_found
....
```

# After Submitting
We need to check if any integrations rely on this hack.
2024-04-15 21:09:58 +02:00
..
bytes Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
charting Copy-on-write for record values (#12305) 2024-04-14 01:42:03 +00:00
conversions Copy-on-write for record values (#12305) 2024-04-14 01:42:03 +00:00
database Copy-on-write for record values (#12305) 2024-04-14 01:42:03 +00:00
date Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
debug Copy-on-write for record values (#12305) 2024-04-14 01:42:03 +00:00
env Disallow setting the PWD via load-env input (#12522) 2024-04-15 21:09:58 +02:00
experimental Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
filesystem making ls and du supports rest parameters. (#12327) 2024-04-13 15:03:17 +00:00
filters Copy-on-write for record values (#12305) 2024-04-14 01:42:03 +00:00
formats Copy-on-write for record values (#12305) 2024-04-14 01:42:03 +00:00
generators Copy-on-write for record values (#12305) 2024-04-14 01:42:03 +00:00
hash Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
help Copy-on-write for record values (#12305) 2024-04-14 01:42:03 +00:00
math Copy-on-write for record values (#12305) 2024-04-14 01:42:03 +00:00
misc Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
network Copy-on-write for record values (#12305) 2024-04-14 01:42:03 +00:00
path Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
platform Return value instead of stream from kill (#12480) 2024-04-12 10:44:27 -05:00
random Range refactor (#12405) 2024-04-06 09:04:56 -05:00
removed Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
shells Add command_prelude module (#12291) 2024-03-26 21:17:30 +00:00
stor Fix typo in help stor import (#12442) 2024-04-07 08:09:24 -05:00
strings Fix nushell#10591: encode returns error with utf-16le and utf-16be encodings (nushell#10591) (#12411) 2024-04-06 09:07:55 -05:00
system Rename IoStream to OutDest (#12433) 2024-04-09 16:48:32 +00:00
viewers Copy-on-write for record values (#12305) 2024-04-14 01:42:03 +00:00
default_context.rs Use nightly clippy to kill dead code/fix style (#12334) 2024-03-30 09:17:28 +08:00
example_test.rs Initial --params implementation (#12249) 2024-03-24 15:40:21 -05:00
lib.rs Initial --params implementation (#12249) 2024-03-24 15:40:21 -05:00
progress_bar.rs remove cp-old (#11622) 2024-01-24 07:38:15 +08:00
sort_utils.rs Rename Value::CustomValue to Value::Custom (#12309) 2024-03-27 22:10:56 +01:00