forked from extern/nushell
Wrap open
parse errors from from
commands (#6877)
* Wrap `open` parse errors from `from` commands Minimal fix for #6843 This propagates the underlying errors from the called `from` commands and adds a top-level error with the full path and the understood file extension and resulting called command. * Repoint inner span for `from ...` to `open` * Add actionable message: refer to help or use --raw
This commit is contained in:
parent
ebca840d91
commit
79fd7d54b2
@ -172,8 +172,17 @@ impl Command for Open {
|
|||||||
let block = engine_state.get_block(block_id);
|
let block = engine_state.get_block(block_id);
|
||||||
eval_block(engine_state, stack, block, output, false, false)
|
eval_block(engine_state, stack, block, output, false, false)
|
||||||
} else {
|
} else {
|
||||||
decl.run(engine_state, stack, &Call::new(arg_span), output)
|
decl.run(engine_state, stack, &Call::new(call_span), output)
|
||||||
}
|
}
|
||||||
|
.map_err(|inner| {
|
||||||
|
ShellError::GenericError(
|
||||||
|
format!("Error while parsing as {}", ext),
|
||||||
|
format!("Could not parse '{}' with `from {}`", path.display(), ext),
|
||||||
|
Some(arg_span),
|
||||||
|
Some(format!("Check out `help from {}` or `help from` for more options or open raw data with `open --raw '{}'`", ext, path.display())),
|
||||||
|
vec![inner],
|
||||||
|
)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
None => Ok(output),
|
None => Ok(output),
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user