mirror of
https://github.com/nushell/nushell.git
synced 2024-12-23 07:30:13 +01:00
Add context to the I/O error messages in nu_cmd_plugin::util::modify_plugin_file()
(#13259)
# Description This might help @hustcer debug problems with `setup-nu`. The error messages with the file I/O in `modify_plugin_file()` are not currently not specific about what file path was involved in the I/O operation. The spans on those errors have also changed to the span of the custom path if provided. # User-Facing Changes - Slightly better error
This commit is contained in:
parent
57452337ff
commit
a71732ba12
@ -31,11 +31,20 @@ pub(crate) fn modify_plugin_file(
|
|||||||
})?
|
})?
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let file_span = custom_path.as_ref().map(|p| p.span).unwrap_or(span);
|
||||||
|
|
||||||
// Try to read the plugin file if it exists
|
// Try to read the plugin file if it exists
|
||||||
let mut contents = if fs::metadata(&plugin_registry_file_path).is_ok_and(|m| m.len() > 0) {
|
let mut contents = if fs::metadata(&plugin_registry_file_path).is_ok_and(|m| m.len() > 0) {
|
||||||
PluginRegistryFile::read_from(
|
PluginRegistryFile::read_from(
|
||||||
File::open(&plugin_registry_file_path).err_span(span)?,
|
File::open(&plugin_registry_file_path).map_err(|err| ShellError::IOErrorSpanned {
|
||||||
Some(span),
|
msg: format!(
|
||||||
|
"failed to read `{}`: {}",
|
||||||
|
plugin_registry_file_path.display(),
|
||||||
|
err
|
||||||
|
),
|
||||||
|
span: file_span,
|
||||||
|
})?,
|
||||||
|
Some(file_span),
|
||||||
)?
|
)?
|
||||||
} else {
|
} else {
|
||||||
PluginRegistryFile::default()
|
PluginRegistryFile::default()
|
||||||
@ -46,7 +55,14 @@ pub(crate) fn modify_plugin_file(
|
|||||||
|
|
||||||
// Save the modified file on success
|
// Save the modified file on success
|
||||||
contents.write_to(
|
contents.write_to(
|
||||||
File::create(&plugin_registry_file_path).err_span(span)?,
|
File::create(&plugin_registry_file_path).map_err(|err| ShellError::IOErrorSpanned {
|
||||||
|
msg: format!(
|
||||||
|
"failed to create `{}`: {}",
|
||||||
|
plugin_registry_file_path.display(),
|
||||||
|
err
|
||||||
|
),
|
||||||
|
span: file_span,
|
||||||
|
})?,
|
||||||
Some(span),
|
Some(span),
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user