fixed the bug ~ | path type return empty string (#9853)

- this PR should close #9849 
- fixes #9849
This commit is contained in:
mengsuenyan 2023-07-31 20:47:18 +08:00 committed by GitHub
parent e16ce1df36
commit 28ed21864d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 1 deletions

View File

@ -1,5 +1,6 @@
use std::path::Path; use std::path::Path;
use nu_path::expand_tilde;
use nu_protocol::ast::Call; use nu_protocol::ast::Call;
use nu_protocol::engine::{EngineState, Stack}; use nu_protocol::engine::{EngineState, Stack};
use nu_protocol::{ use nu_protocol::{
@ -78,7 +79,12 @@ If nothing is found, an empty string will be returned."#
} }
fn r#type(path: &Path, span: Span, _: &Arguments) -> Value { fn r#type(path: &Path, span: Span, _: &Arguments) -> Value {
let meta = std::fs::symlink_metadata(path); let meta = if path.starts_with("~") {
let p = expand_tilde(path);
std::fs::symlink_metadata(p)
} else {
std::fs::symlink_metadata(path)
};
Value::string( Value::string(
match &meta { match &meta {

View File

@ -50,5 +50,14 @@ fn returns_type_of_existing_directory() {
)); ));
assert_eq!(actual.out, "file"); assert_eq!(actual.out, "file");
let actual = nu!(pipeline(
r#"
echo "~"
| path type
"#
));
assert_eq!(actual.out, "dir");
}) })
} }