forked from extern/nushell
Source path including tilda (#3059)
* Use expand_path to handle the path including tilda * Publish path::expand_path for using in nu-command * cargo fmt Co-authored-by: Wataru Yamaguchi <nagisamark2@gmail.com>
This commit is contained in:
parent
48a90fea70
commit
0795d56c1c
@ -2,6 +2,7 @@ use crate::prelude::*;
|
|||||||
use nu_engine::WholeStreamCommand;
|
use nu_engine::WholeStreamCommand;
|
||||||
|
|
||||||
use nu_errors::ShellError;
|
use nu_errors::ShellError;
|
||||||
|
use nu_parser::expand_path;
|
||||||
use nu_protocol::{Signature, SyntaxShape};
|
use nu_protocol::{Signature, SyntaxShape};
|
||||||
use nu_source::Tagged;
|
use nu_source::Tagged;
|
||||||
|
|
||||||
@ -46,7 +47,7 @@ pub async fn source(args: CommandArgs) -> Result<OutputStream, ShellError> {
|
|||||||
// Note: this is a special case for setting the context from a command
|
// Note: this is a special case for setting the context from a command
|
||||||
// In this case, if we don't set it now, we'll lose the scope that this
|
// In this case, if we don't set it now, we'll lose the scope that this
|
||||||
// variable should be set into.
|
// variable should be set into.
|
||||||
let contents = std::fs::read_to_string(&filename.item);
|
let contents = std::fs::read_to_string(expand_path(&filename.item).into_owned());
|
||||||
match contents {
|
match contents {
|
||||||
Ok(contents) => {
|
Ok(contents) => {
|
||||||
let result = crate::script::run_script_standalone(contents, true, &ctx, false).await;
|
let result = crate::script::run_script_standalone(contents, true, &ctx, false).await;
|
||||||
|
@ -15,6 +15,7 @@ pub use lex::lexer::{lex, parse_block};
|
|||||||
pub use lex::tokens::{LiteBlock, LiteCommand, LiteGroup, LitePipeline};
|
pub use lex::tokens::{LiteBlock, LiteCommand, LiteGroup, LitePipeline};
|
||||||
pub use parse::{classify_block, garbage, parse, parse_full_column_path, parse_math_expression};
|
pub use parse::{classify_block, garbage, parse, parse_full_column_path, parse_math_expression};
|
||||||
pub use path::expand_ndots;
|
pub use path::expand_ndots;
|
||||||
|
pub use path::expand_path;
|
||||||
pub use scope::ParserScope;
|
pub use scope::ParserScope;
|
||||||
pub use shapes::shapes;
|
pub use shapes::shapes;
|
||||||
pub use signature::{Signature, SignatureRegistry};
|
pub use signature::{Signature, SignatureRegistry};
|
||||||
|
@ -1788,7 +1788,9 @@ fn parse_call(
|
|||||||
)),
|
)),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if let Ok(contents) = std::fs::read_to_string(&lite_cmd.parts[1].item) {
|
if let Ok(contents) =
|
||||||
|
std::fs::read_to_string(expand_path(&lite_cmd.parts[1].item).into_owned())
|
||||||
|
{
|
||||||
let _ = parse(&contents, 0, scope);
|
let _ = parse(&contents, 0, scope);
|
||||||
} else {
|
} else {
|
||||||
return (
|
return (
|
||||||
|
Loading…
Reference in New Issue
Block a user