Specify which file not found in error (#11868)

# Description
Currently, `ShellError::FileNotFound` shows the span where the error
occurred but doesn't say which file wasn't found. This PR makes it so
the help includes that (like the `DirectoryNotFound` error).

# User-Facing Changes
No breaking changes, it's just that when a file can't be found, the help
will say which file couldn't be found:


![image](https://github.com/nushell/nushell/assets/45539777/e52f1e65-55c1-4cd2-8108-a4ccc334a66f)
This commit is contained in:
Yash Thakur
2024-02-21 08:27:13 -05:00
committed by GitHub
parent 1058707a29
commit 6ff3a4180b
8 changed files with 39 additions and 16 deletions

View File

@ -56,6 +56,7 @@ impl Command for SourceEnv {
PathBuf::from(&path)
} else {
return Err(ShellError::FileNotFound {
file: source_filename.item,
span: source_filename.span,
});
};

View File

@ -81,6 +81,7 @@ impl Command for Mv {
if sources.is_empty() {
return Err(ShellError::FileNotFound {
file: spanned_source.item.to_string(),
span: spanned_source.span,
});
}

View File

@ -92,7 +92,10 @@ impl Command for Open {
for path in nu_engine::glob_from(&path, &cwd, call_span, None)
.map_err(|err| match err {
ShellError::DirectoryNotFound { span, .. } => ShellError::FileNotFound { span },
ShellError::DirectoryNotFound { span, .. } => ShellError::FileNotFound {
file: path.item.to_string(),
span,
},
_ => err,
})?
.1

View File

@ -205,7 +205,10 @@ impl Command for UCp {
.map(|f| f.1)?
.collect();
if exp_files.is_empty() {
return Err(ShellError::FileNotFound { span: p.span });
return Err(ShellError::FileNotFound {
file: p.item.to_string(),
span: p.span,
});
};
let mut app_vals: Vec<PathBuf> = Vec::new();
for v in exp_files {

View File

@ -121,7 +121,10 @@ impl Command for UMv {
.map(|f| f.1)?
.collect();
if exp_files.is_empty() {
return Err(ShellError::FileNotFound { span: p.span });
return Err(ShellError::FileNotFound {
file: p.item.to_string(),
span: p.span,
});
};
let mut app_vals: Vec<PathBuf> = Vec::new();
for v in exp_files {

View File

@ -120,6 +120,7 @@ impl Command for NuCheck {
path
} else {
return Err(ShellError::FileNotFound {
file: path_str.item,
span: path_str.span,
});
}