Show symlink sizes in ls (#1680)

* Show symlink sizes in ls

* Reduce redundancy in the size code of ls
This commit is contained in:
Joseph T. Lyons 2020-04-29 03:23:26 -04:00 committed by GitHub
parent c704157bc8
commit 8d197e1b2f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -127,15 +127,19 @@ pub(crate) fn dir_entry_dict(
}
}
let mut size_untagged_value: UntaggedValue = UntaggedValue::nothing();
if let Some(md) = metadata {
if md.is_file() {
dict.insert_untagged("size", UntaggedValue::bytes(md.len() as u64));
} else {
dict.insert_untagged("size", UntaggedValue::nothing());
size_untagged_value = UntaggedValue::bytes(md.len() as u64);
} else if md.file_type().is_symlink() {
if let Ok(symlink_md) = filename.symlink_metadata() {
size_untagged_value = UntaggedValue::bytes(symlink_md.len() as u64);
}
} else {
dict.insert_untagged("size", UntaggedValue::nothing());
}
}
dict.insert_untagged("size", size_untagged_value);
if let Some(md) = metadata {
if full {