Fix missing file names from rm errors (#9120)

# Description
Fixes a small bug with `rm` where names of files which couldn't be
deleted due to error were not printed.

Fixes https://github.com/nushell/nushell/issues/9004

# User-Facing Changes
Slightly different error message than previously. Nothing significant,
though.

The new error message looks like this
```
~/Projects/rust/nushell> rm /proc/1/mem                                                                                                                                                            05/06/2023 01:13:23 PM
Error: nu:🐚:remove_not_possible

  × Remove not possible
   ╭─[entry #3:1:1]
 1 │ rm /proc/1/mem
   ·    ─────┬─────
   ·         ╰── Could not delete /proc/1/mem: Operation not permitted (os error 1)
   ╰────

```

or when using a glob (only showing a single entry for brevity)

```
Error: nu:🐚:remove_not_possible

  × Remove not possible
   ╭─[entry #2:1:1]
 1 │ rm --recursive --force --verbose /proc/1/*
   ·                                  ────┬────
   ·                                      ╰── Could not delete /proc/1/comm: Operation not permitted (os error 1)
   ╰────
```

# Tests + Formatting
No new unit tests were added for this change as it is pretty difficult
to test this particular case. However, manual testing was run with the
following commands

```
rm /proc/1/mem
rm --recursive --force --verbose /proc/1/*
```

# After Submitting
N/A
This commit is contained in:
Michael Albers
2023-06-18 02:00:12 -06:00
committed by GitHub
parent 6c730def4b
commit c12b211075
3 changed files with 65 additions and 9 deletions

View File

@ -419,15 +419,9 @@ fn rm(
}
if let Err(e) = result {
let msg = format!("Could not delete because: {e:}");
let msg = format!("Could not delete {:}: {e:}", f.to_string_lossy());
Value::Error {
error: Box::new(ShellError::GenericError(
msg,
e.to_string(),
Some(span),
None,
Vec::new(),
)),
error: Box::new(ShellError::RemoveNotPossible(msg, span)),
}
} else if verbose {
let msg = if interactive && !confirmed {